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
Форумы портала PHP.SU :: Версия для печати :: Использование мультибайтных функций
Форумы портала PHP.SU » PHP » Программирование на PHP » Использование мультибайтных функций

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

1. Cerg - 07 Ноября, 2016 - 19:32:08 - перейти к сообщению
пишу сайт в кодировке UTF-8
Нужно-ли в скриптах, которые оперируют именами файлов (например с загруженными фото):
т.е получили список имен фото в массив итд, сверяем с шаблоном, модифицируем имя файлов ( исп substr, strlen итд) использовать их мультибайтные аналоги mb_ и также добовлять модификатор u к шаблону в функциях preg_ ? Мне кажется что не надо,но четкого понимания нет((. Скрипт работает и так и так))
2. Мелкий - 07 Ноября, 2016 - 21:04:40 - перейти к сообщению
Зависит от файловой системы.
Порой и iconv дёргать надо, если ОС оперирует не utf8, а, например, utf16. Или вовсе что-нибудь 8-битное вместо локали.

Если допустимо самому выбирать схему именования - то используйте только 0-9, a-z (с учетом регистрозависимости!) и символы _-.
У большинства кодировок эти символы занимают одни и те же позиции, т.к. наследуют ASCII и потому проблем не провоцируют.
3. Cerg - 07 Ноября, 2016 - 21:19:19 - перейти к сообщению
Мелкий пишет:
Зависит от файловой системы.

делаю в OpenServer под Win10. Буквы в названиях только латинские, цифры и знаки подчерк _ .
а что там будет на хостинге (если до него вообще дойдет..) не знаю..)
4. LIME - 08 Ноября, 2016 - 17:05:13 - перейти к сообщению
Cerg тогда не надо
Но продумай ось изменений
Те. Что может измениться
Возможно ли что будут другие символы. И еще продумай не стоит ли выделить код в отдельный модуль для применения в других проектах.
Если нет то нет....значит будешь ловить траблы как все пока не научишься писать универсальный код годный для повторного использованияУлыбка
Намек понят?Улыбка
5. Cerg - 08 Ноября, 2016 - 21:17:55 - перейти к сообщению
LIME пишет:
амек понят?Улыбка

понял, с универсальностью кода часто у меня проблемы)
(Добавление)
Тогда еще вопрос про старинную библиотеку JsHttpRequest (если ее еще кто использует)
То-же самое, нужно-ли в ней (JsHttpRequest.php) менять строковые функции на mb_ и савить модификатор u в preg_
Добавил только модификатор, вроде тоже работает и киррилица тоже. При вызове использую $JsHttpRequest =new JsHttpRequest("UTF-8");
6. LIME - 08 Ноября, 2016 - 21:47:06 - перейти к сообщению
Хм
А как ты в ней кодировку поменяешь? Это js
А оно только в utf работает
Кстати распространенное заблуждение думать что Ajax работает в в utf
Это js работает в utf
Причем неважно в чем страница
Перекодируется
Короче делай все под utf и делай мозг ни себе ни людям
(Добавление)
Короче ответ нет
Так нельзя
По хорошему точи все как надо
Потом сам себе спасибо скажешь
(Добавление)
Мелкий пишет:
Зависит от файловой системы.
фу
Это же браузеры...Не мне тебе пояснять
(Добавление)
Мелкий решил поумничать))
7. Cerg - 08 Ноября, 2016 - 23:01:43 - перейти к сообщению
LIME пишет:
Короче делай все под utf и делай мозг ни себе ни людям
(Добавление)
Короче ответ нет
Так нельзя
По хорошему точи все как надо
Потом сам себе спасибо скажешь

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

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

т.е а здесь не важно - можно оставить можно менять?))
8. LIME - 08 Ноября, 2016 - 23:07:39 - перейти к сообщению
Отдуплись
Я же ясно сказал
Менять!!!
В данном конкретном случае не важно но в принципе.. В стиле написания кода
Менять обязательно
(Добавление)
А по поводу библиотеки
Ни-в коем случае не лезть в нее
Сначала научись делать хорошо
И только потом делай плохо
(Добавление)
Евген...известный тут персонаж
Он же главный админ
Как-то где-то сказал
Может не его слова но ссылаюсь на-него
У новичков есть болезнь
Я сейчас сделаю лишь бы работало
А потом научусь как правильно
Такие не начаться
Сразу делай как надо
(Добавление)
*научатся
9. Ch_chov - 10 Ноября, 2016 - 07:31:03 - перейти к сообщению
Если делать транслитерацию для имён файлов при загрузке, то проблем будет намного меньше.
В PHP 5.4 добавили класс для транслитерации.
http://php.net/manual/ru/class.t...ansliterator.php

Также есть много сторонних библиотек и функций для этого.
Например Urlify: https://github[dot]com/jbroadway/urlify

 

Powered by ExBB FM 1.0 RC1