我试图从字符串中删除重音符号,并在php中编写了以下函数,但它没有删除它们。字符串带着重音符号进入,并带着重音符号返回。
function stripaccents($string)
{
$replace = array('é','í','ó','á','ñ', 'ú', 'ü');
$with = array('e','i','o','a', 'n', 'u', 'u');
foreach ($replace as &$char)
{
$char = utf8_decode($char);
}
unset($char);
$newstring = str_replace($replace, $with, $string);
return $newstring;
}
6条答案
按热度按时间zpgglvta1#
如果您使用的是PHP 5.3或更高版本(应该是这样),请使用内置函数:
nkkqxpd92#
您也可以使用
iconv
4xy9mtcn3#
由于您要查找特定的西班牙语字符,因此可以使用正则表达式来查找这些特定字符:
否则,您可以使用前面提到的其他函数之一。
8gsdolmq4#
我觉得你不需要
因为utf8_decode尝试将2字节值从**$replace**转换为1字节值
ebdffaop5#
这是我正在使用的一个习惯。
6tdlim6h6#
这是我在PHP中找到的最好的方法,当然你可以自定义它:
来源:https://www.php.net/manual/en/class.transliterator.php