在将值存储到数据库之前,我需要能够用英语等价替换一些常见的外来字符。
例如:æ替换为 ae ,ñ替换为 n 。
我是否使用preg_replace?
由于
答案 0 :(得分:6)
对于重音的单个字符
$str = strtr($str,
"ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÝßàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ",
"AAAAAACEEEEIIIINOOOOOOYSaaaaaaceeeeiiiinoooooouuuuyy");
对于double character
重音(例如Æ, æ
)
$match = array('æ', 'Æ');
$replace = array('ae', 'AE');
$str = str_replace($replace, $replace, $str);
答案 1 :(得分:5)
答案 2 :(得分:4)
您可以在数组中定义可转换字符,然后使用str_replace()
:
$conversions = array(
"æ" => "ae",
"ñ" => "n",
);
$text = str_replace(array_keys($conversions), $conversions, $text);
答案 3 :(得分:2)
请原谅我猜你为什么这么做,但是......
如果这是用于搜索匹配:MySQL中的字符集整理点(例如),您可以搜索“n”并仍然匹配“ñ”
如果这是出于显示目的:我建议如果必须这样做,则在向用户显示文本时执行此操作。否则你永远无法获得原始数据。