php字符串对应替换(把一些拼音换成对应的汉字)

我想把一些城市名称如 anyang 替换成安阳 ,很多这样的拼音,如何建一个数组用什么函数进行一一替换最快。

PHP str_ireplace() 函数使用一个字符串替换字符串中的另一些字符。

<?php

$find = "anyang";
$replace = "安阳";
$arr = "anyang测试anyang";
$newstr = str_ireplace($find,$replace,$arr);

echo $newstr;

?>

使用这个str_ireplace()就能替换了,而且还不用担心大小写问题,如果不用考虑大小写那就使用str_replace()即可!

参数如下:
str_ireplace(find,replace,string,count)
参数 描述
find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。一个变量,对替换数进行计数。

欢迎采纳!

参考资料:璞玉

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-17
汉字可以转化为唯一的拼音,但是拼音却不能转换为唯一的汉字
所以要换个思路,先把汉字与拼音对应起来
例如:
$hz=array("安阳","北京","南京");//城市
$py=array("anyang","beijing",nanjing");//拼音
$str="大家黑色金属惊anyang声尖beijing大家好nanjing哈哈大家夜夜夜夜大家好就纠结";
echo $str=str_replace($py, $hz, $str);

或者写一个汉字转化为拼音的类
class spell{
function c_spell($_String, $_Code='UTF8'){
return 拼音;

}
}//这个类

$spell=new spell();//调用
$str="大家黑色金属惊anyang声尖beijing大家好nanjing哈哈大家夜夜夜夜大家好就纠结";
$hz=array("安阳","北京","南京");//城市

foreach($hz as $value){
$patterns[0][]=$value;
$patterns[1][]=$spell->c_spell($value,'UTF8');
}
echo $str=str_replace($patterns[1], $patterns[0], $str);
如果需要类,留下QQ我发给你
第2个回答  推荐于2016-08-10
<?php
$city = 'anyang';

$citys = array('shanghai'=>'上海',‘anyang’=>'安阳'.....);
$city = $citys[$city];

做个一一对应的hash,然后替换咯
第3个回答  2013-02-17
$Pinyin=array(
'anyang'
);
$Hanzi=array(
'安阳'
);
$str=str_replace($Pinyin,$Hanzi);