4

我一直在寻找字符串操作函数的 UTF8 安全替代方案。我发现了许多不同的意见和建议。我想问一下以下函数是否会导致 UTF-8 出现问题,如果会,我应该改用什么。我知道 PHP 手册中的 mb_ 前缀函数列表,但并不是我使用的所有函数。

函数有:内爆、爆炸、str_replace、preg_match、preg_replace

谢谢

4

2 回答 2

6

explode只是查找相同的字节序列并在该点分隔字符串。由于 UTF-8 与 ASCII 安全地向后兼容,因此无需担心,它会正常工作。implode只需将字符串组合在一起,由于 UTF-8 的特性,它也可以正常工作。str_replace出于同样的原因工作。preg_只要您使用/u修饰符,这些功能就可以正常工作。

于 2012-08-24T14:54:52.473 回答
1

如果您需要安全地使用 UTF8 字符进行操作,您可以这样做:

mb_internal_encoding('UTF-8');
preg_replace( '`...`u', '...', $string ) // with the u (unicode) modifier
于 2012-08-24T14:48:51.857 回答