PHP mbstring.func_overload 与使用 mbstring 函数

Xeo*_*oss 1 php utf-8 multibyte

我想要使​​我的网站的字符串处理符合 UTF-8 支持其他语言。似乎最好的方法是放弃所有标准字符串函数。

所以我有两个选择,我可以mbstring.func_overload在 php.ini 中设置选项,或者我可以返回我的代码并将所有函数替换为mb_*. 我认为第二个选项对于使用我的代码的人来说会更容易,因为他们不必更改他们的服务器配置。(如果他们能的话!)

PHP 6 何时发布呢?这对我的选择有什么影响吗,因为它将支持正确的多字节处理。

Fra*_*mer 5

我认为反对的论点mbstring.func_overload是,如果您使用任何第三方库/代码,该代码可能依赖于相关函数的“正常”功能——例如,它可能会调用 substr() 来截断包含精确字节边界处的二进制数据,或使用 strlen() 获取字节长度,而不是 UTF-8 字符长度。

另请参阅:我应该使用多字节重载(mbstring.func_overload)吗?

  • 这是一个有着数百年历史的传统。你知道,万圣节就是这样开始的。圣诞老人问感恩节火鸡:“我应该使用 mbstring.func_overload 吗?”。剩下的就是历史了。 (11认同)