Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Использование мультибайтных функций

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Cerg
Отправлено: 07 Ноября, 2016 - 19:32:08
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




пишу сайт в кодировке UTF-8
Нужно-ли в скриптах, которые оперируют именами файлов (например с загруженными фото):
т.е получили список имен фото в массив итд, сверяем с шаблоном, модифицируем имя файлов ( исп substr, strlen итд) использовать их мультибайтные аналоги mb_ и также добовлять модификатор u к шаблону в функциях preg_ ? Мне кажется что не надо,но четкого понимания нет((. Скрипт работает и так и так))
 
 Top
Мелкий Супермодератор
Отправлено: 07 Ноября, 2016 - 21:04:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Зависит от файловой системы.
Порой и iconv дёргать надо, если ОС оперирует не utf8, а, например, utf16. Или вовсе что-нибудь 8-битное вместо локали.

Если допустимо самому выбирать схему именования - то используйте только 0-9, a-z (с учетом регистрозависимости!) и символы _-.
У большинства кодировок эти символы занимают одни и те же позиции, т.к. наследуют ASCII и потому проблем не провоцируют.


-----
PostgreSQL DBA
 
 Top
Cerg
Отправлено: 07 Ноября, 2016 - 21:19:19
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




Мелкий пишет:
Зависит от файловой системы.

делаю в OpenServer под Win10. Буквы в названиях только латинские, цифры и знаки подчерк _ .
а что там будет на хостинге (если до него вообще дойдет..) не знаю..)

(Отредактировано автором: 07 Ноября, 2016 - 21:25:50)

 
 Top
LIME
Отправлено: 08 Ноября, 2016 - 17:05:13
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Cerg тогда не надо
Но продумай ось изменений
Те. Что может измениться
Возможно ли что будут другие символы. И еще продумай не стоит ли выделить код в отдельный модуль для применения в других проектах.
Если нет то нет....значит будешь ловить траблы как все пока не научишься писать универсальный код годный для повторного использованияУлыбка
Намек понят?Улыбка
 
 Top
Cerg
Отправлено: 08 Ноября, 2016 - 21:17:55
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




LIME пишет:
амек понят?Улыбка

понял, с универсальностью кода часто у меня проблемы)
(Добавление)
Тогда еще вопрос про старинную библиотеку JsHttpRequest (если ее еще кто использует)
То-же самое, нужно-ли в ней (JsHttpRequest.php) менять строковые функции на mb_ и савить модификатор u в preg_
Добавил только модификатор, вроде тоже работает и киррилица тоже. При вызове использую $JsHttpRequest =new JsHttpRequest("UTF-8");
 
 Top
LIME
Отправлено: 08 Ноября, 2016 - 21:47:06
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Хм
А как ты в ней кодировку поменяешь? Это js
А оно только в utf работает
Кстати распространенное заблуждение думать что Ajax работает в в utf
Это js работает в utf
Причем неважно в чем страница
Перекодируется
Короче делай все под utf и делай мозг ни себе ни людям
(Добавление)
Короче ответ нет
Так нельзя
По хорошему точи все как надо
Потом сам себе спасибо скажешь
(Добавление)
Мелкий пишет:
Зависит от файловой системы.
фу
Это же браузеры...Не мне тебе пояснять
(Добавление)
Мелкий решил поумничать))
 
 Top
Cerg
Отправлено: 08 Ноября, 2016 - 23:01:43
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




LIME пишет:
Короче делай все под utf и делай мозг ни себе ни людям
(Добавление)
Короче ответ нет
Так нельзя
По хорошему точи все как надо
Потом сам себе спасибо скажешь

т.е и в JsHttpRequest.php менять все на mb_ ?

LIME пишет:
Это же браузеры...Не мне тебе пояснять

т.е а здесь не важно - можно оставить можно менять?))
 
 Top
LIME
Отправлено: 08 Ноября, 2016 - 23:07:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Отдуплись
Я же ясно сказал
Менять!!!
В данном конкретном случае не важно но в принципе.. В стиле написания кода
Менять обязательно
(Добавление)
А по поводу библиотеки
Ни-в коем случае не лезть в нее
Сначала научись делать хорошо
И только потом делай плохо
(Добавление)
Евген...известный тут персонаж
Он же главный админ
Как-то где-то сказал
Может не его слова но ссылаюсь на-него
У новичков есть болезнь
Я сейчас сделаю лишь бы работало
А потом научусь как правильно
Такие не начаться
Сразу делай как надо
(Добавление)
*научатся
 
 Top
Ch_chov
Отправлено: 10 Ноября, 2016 - 07:31:03
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Если делать транслитерацию для имён файлов при загрузке, то проблем будет намного меньше.
В PHP 5.4 добавили класс для транслитерации.
http://php.net/manual/ru/class.t...ansliterator.php

Также есть много сторонних библиотек и функций для этого.
Например Urlify: https://github[dot]com/jbroadway/urlify
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB