如何翻轉乙個中文字串?如:
$str='天氣真好';
字串反轉函式strrev()是乙個單位元組反轉的函式。對於多位元組編碼的中文字元,不能正常使用。因此,這個問題就涉及到php國際化與字元編碼支援。使用多位元組字串函式可以很好解決這個問題。
<?php
header("content-type:text/html;charset=utf-8");
/**此函式的作用是反轉中文字串
mb_strlen() 獲取字元的長度
mb_substr() 獲取字元的單個元素
krsort() 按照鍵值逆序排序陣列
implode() 將陣列拼接為字串
explode() 使用字串分隔字串
*/function str_rev_gb($str)
$array=array();
//將字串存入陣列
$l=mb_strlen($str,'utf-8'); //返回具有 encoding 編碼的字串 str 包含的字元數.多位元組的字元被計為 1。
for($i=0;$i<$l;$i++)
//反轉字串
krsort($array); //按照鍵名逆序排序
//拼接字串
$string=implode($array); //把陣列元素組合成字串
return $string;
}$str1 = "englist";
$str2 = "english中國";
$str3 = "eng中lish國";
$str4 = "中華人民共和國";
echo $str1."->".str_rev_gb($str1)."
";echo $str2."->".str_rev_gb($str2)."
";echo $str3."->".str_rev_gb($str3)."
";echo $str4."->".str_rev_gb($str4)."
";
php中文字串反轉
1 2header content type text html charset utf 8 3 4此函式的作用是反轉中文字串 5mb strlen 獲取字元的長度 6mb substr 獲取字元的單個元素 7krsort 按照鍵值逆序排序陣列 8implode 將陣列拼接為字串 9explode ...
php函式strrev 反轉中文字串亂碼的問題
解決辦法 先把中文字串打散成陣列,然後用krsort 函式對陣列按鍵名降序排序,排好序之後再用implode 或join 函式將陣列合併成字串。header content type text html charset utf 8 str 反轉中文 str arr ch2arr str 將中文字串打...
php中文字元字串反轉字串
header content type text html charset utf 8 s 這是我的技術部落格,歡迎多多來訪!function str rev str 用mb strlen函獲取算utf8字串的長度 length mb strlen str,utf 8 宣告乙個陣列備用 arr ar...