我一直在寻找UTF8安全的字符串操作函数替代品。我发现了许多不同的意见和建议。我想问一下以下函数是否会导致UTF-8出现问题,如果有,我应该使用什么代替。我知道PHP手册中的mb_前缀函数列表,但我没有使用所有函数。
功能包括:implode,explode,str_replace,preg_match,preg_replace
谢谢
答案 0 :(得分:5)
explode
只查找相同的字节序列并在该点分隔字符串。由于UTF-8安全地向后兼容ASCII,因此没有任何问题,它可以正常工作。 implode
只是将字符串组合在一起,由于UTF-8的属性,它也可以正常工作。 str_replace
的工作原理相同。只要您使用/u
modifier,preg_
函数就可以正常工作。
答案 1 :(得分:1)
如果您需要使用UTF8字符进行安全操作,可以这样做:
mb_internal_encoding('UTF-8');
preg_replace( '`...`u', '...', $string ) // with the u (unicode) modifier