PHP mbstring.func_overload 与使用 mbstring 函数
我想要使我的网站的字符串处理符合 UTF-8 支持其他语言。似乎最好的方法是放弃所有标准字符串函数。
所以我有两个选择,我可以在 php.ini 中设置 mbstring.func_overload 选项,或者我可以返回我的代码并用 mb_* 替换所有函数。我认为第二个选项对于使用我的代码的人来说会更容易,因为他们不必更改他们的服务器配置。 (如果他们能做到的话!)
PHP 6 何时发布呢?这对我的选择有什么影响吗,因为它将支持正确的多字节处理。
I want to conform my site's string handling to support other languages per UTF-8. It seems that the best way to do this is to forsake all the standard string functions.
So I have two options, I can set the mbstring.func_overload
option in php.ini or I can go back over my code and just replace all the functions with mb_*
. I would assume that the second option will be easier on people using my code as they won't have to change their sever config. (if they even can!)
What about when PHP 6 comes out? Should that have any baring on my choice since it will support proper multibyte processing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信反对 mbstring.func_overload 的论点是,如果您使用任何第三方库/代码,该代码可能依赖于相关函数的“正常”功能 - 例如,它可能调用 substr() 截断包含精确字节边界处的二进制数据的字符串,或者使用 strlen() 获取字节长度,而不是 UTF-8 字符长度。
另请参阅:我应该使用多字节重载 (mbstring.func_overload) 吗?
I believe the argument against
mbstring.func_overload
is that if you use any 3rd party libraries/code whatsoever, that code may be relying on the "normal" functionality of the functions in question -- e.g., it may be calling substr() to truncate a string containing binary data at an exact byte boundary, or using strlen() to get length in bytes, rather than length in UTF-8 characters.See also: Should I use multi-byte overloading (mbstring.func_overload)?