如何将特殊字符替换为PHP中基于的特殊字符?
2022-08-30 19:33:52
如何更换:
- “ã” 与 “a”
- “é” 与 “e”
在 PHP 中?这可能吗?我已经在某个地方读到过,我可以用基本字符的ascii值和重音的ascii值做一些数学运算,但我现在找不到任何参考。
如何更换:
在 PHP 中?这可能吗?我已经在某个地方读到过,我可以用基本字符的ascii值和重音的ascii值做一些数学运算,但我现在找不到任何参考。
如果您无权访问 Normalizer 类,或者只是不想使用它,则可以使用以下函数来替换大多数(所有?)常见重音。
function Unaccent($string)
{
return preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8'));
}
这个答案是不正确的。当我写它时,我不理解Unicode规范化。看看弗兰卡达瓦尔的评论和链接
请查看规范化程序类以执行此操作。文档很好,所以我只是链接它,而不是在这里重复一些事情:
http://www.php.net/manual/en/class.normalizer.php
具体而言,该类的规范化成员:
http://www.php.net/manual/en/normalizer.normalize.php
请注意,Unicode 规范化有几种形式,您似乎想要规范化形式 KD (NFKD) 兼容性分解,尽管您应该阅读文档以确保。
你不应该为此尝试滚动自己的函数:有太多的事情可能会出错,使用提供的函数是一个更好的主意。