我试图在php中替换一些重音字符。首先,我使用preg_match
来检测此类(及其正在工作)的字符,然后preg_replace
将其替换为另一个字符。在我的情况下,我尝试将/[é]|[è]/
替换为'e'
。
if(preg_match('/[é]|[è]/',$adress)){
preg_replace('/[é]|[è]/','e',$adress);
}
所以任何替代方案或其他解决方案。
答案 0 :(得分:0)
在您的代码中,变量$adress
按值传递给preg_replace
。这条线
preg_replace('/[é]|[è]/','e',$adress);
实际上替换了 $adress
变量的临时副本中的字符。但结果未被使用。
如果要修改它,则应将preg_replace
的结果分配给它:
$adress = preg_replace('/[éè]/u', 'e', $adress);
请注意使用u
标志。另外,我稍微优化了原始正则表达式。
或者,使用str_replace
。它不被视为“多字节”,但它实际上可用于此类替换:
$adress = str_replace(['é', 'è'], 'e', $adress);
P.S。:考虑将$adress
重命名为$address
。