2009-10-30 2 views
1

Я хочу, чтобы строка обработки строки моего сайта поддерживала другие языки на UTF-8. Кажется, что лучший способ сделать это - оставить все стандартные строковые функции.PHP mbstring.func_overload vs using mbstring функции

Итак, у меня есть два варианта, я могу установить опцию mbstring.func_overload в php.ini, или я могу вернуться к моему коду и просто заменить все функции mb_*. Я бы предположил, что второй вариант будет проще для людей, использующих мой код, так как им не придется менять свой конфигурационный файл. (если они даже могут!)

Как насчет выхода PHP 6? Если у вас есть выбор по моему выбору, так как он будет поддерживать правильную многобайтную обработку.

ответ

3

Я считаю, что аргумент против mbstring.func_overload заключается в том, что если вы используете какие-либо сторонние библиотеки/код вообще, этот код может полагаться на «нормальную» функциональность рассматриваемых функций - например, он может вызывать substr() обрезать строку, содержащую двоичные данные, на точной границе байта, или используя strlen(), чтобы получить длину в байтах, а не длину в символах UTF-8.

Смотрите также: Should I use multi-byte overloading (mbstring.func_overload)?

+0

Weird, что с этим вопросом спрашивают каждый год в конце октября? – Xeoncross

+8

Это многовековая традиция. Знаешь, так началась Хэллоуин. Санта спросил благодарную индейку: «Должен ли я использовать mbstring.func_overload?». Остальное уже история. –

+0

Все, что использует двоичные данные в строках, попадет в проблему, если вы включите mbstring.func_overload. –

 Смежные вопросы

  • Нет связанных вопросов^_^