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