我希望符合我网站的字符串处理,以支持每个UTF-8的其他语言。似乎最好的方法是放弃所有标准的字符串函数。
所以我有两个选项,我可以在php.ini中设置mbstring.func_overload
选项,或者我可以回过头代码,只需用mb_*
替换所有函数。我认为第二个选项对于使用我的代码的人来说会更容易,因为他们不必更改他们的服务器配置。 (如果他们甚至可以!)
PHP 6出来的时候怎么样?这应该是我的选择,因为它将支持正确的多字节处理。
答案 0 :(得分:3)
我认为反对mbstring.func_overload
的论点是,如果您使用任何第三方库/代码,那么该代码可能依赖于相关函数的“正常”功能 - 例如,它可能正在调用substr()截断包含精确字节边界的二进制数据的字符串,或使用strlen()获取字节长度,而不是UTF-8字符的长度。
另请参阅:Should I use multi-byte overloading (mbstring.func_overload)?