本文實例講述了PHP使用strrev翻轉中文亂碼問題的解決方法。分享給大家供大家參考,具體如下:
在用PHP中的strrve翻轉中文時,會出現亂碼情況
例如:
代碼如下復制代碼header("Content-Type: text/html; charset=utf-8");
echostrrev("處理使用strrev()函數時的亂碼問題")."
";
運行結果為:
代碼如下復制代碼��???䄚?氕潇�)(verrts��?䆐?r�解決方法就是自己重寫一個cnstrrev的函數
代碼如下復制代碼header("Content-Type: text/html; charset=utf-8");
$str='處理使用strrev()函數時的亂碼問題'
functioncnstrrev($str)
{
$len=strlen($str);
for($i= 0;$i<$len;$i++)
{
$char=$str{0};
if(ord($char) > 127)//ord()函數取得第一個字符的ASCII碼,如果大於0xa0(127)的話則是中文字符
{
$i+=2;//utf-8編碼的情況下,一個中文字符占三個字節
if($i<$len)
{
$arr[] =substr($str, 0, 3);//utf-8編碼的情況下,一個中文字符占三個字節
$str=substr($str, 3);
}
}
else
{
$arr[] =$char;
$str=substr($str, 1);//否則為非中文,占一個字符
}
}
returnjoin(array_reverse($arr));//以相反的元素順序返回數組:
}
echo$str.'+'.cnstrrev($str);
運行結果為:
代碼如下復制代碼處理使用strrev()函數時的亂碼問題+題問碼亂的時數函)(verrts用使理處