一、在學習PHP的字串函數,發現strrve函數翻轉中文時,會出現亂碼情況

二、執行結果

三、解決方法:重寫一個函式

四、執行翻轉結果

五、參考連結

 

一、在學習PHP的字串函數,發現strrve函數翻轉中文時,會出現亂碼情況

$str="網站伺服器程式設計:Php與MySql";
echo strrev($str)."<br>";

 

二、執行結果:

lqSyM���phP:��譨菼勨稙卜溼䙫粶�

 

三、解決方法:重寫一個函式

<?
function cnstrrev($str)
{
  $len = strlen($str);
  for($i = 0; $i < $len; $i++)
  {
    $char = $str{0};
  //ord()函式取得第一個字元的ASCII碼,如果大於0xa0(127)的話則是中文字元
    if(ord($char) > 127) 
    {
      //utf-8編碼的情況下,一箇中文字元佔三個位元組
      $i+=2;
      if($i < $len)
      {
        //utf-8編碼的情況下,一箇中文字元佔三個位元組
        $arr[] = substr($str, 0, 3);
        $str = substr($str, 3);
      }
    }
    else
    {
      $arr[] = $char;
      //否則為非中文,佔一個字元
      $str = substr($str, 1);
    }
  }
  //以相反的元素順序返回陣列:
  return join(array_reverse($arr));
}
echo "執行翻轉結果:".cnstrrev($str);

?>

 

四、執行翻轉結果: 

lqSyM與phP:計設式程器服伺站網

 

五、參考連結:

https://www.itread01.com/article/1484276841.html

 


arrow
arrow
    文章標籤
    php 解決方法 亂碼問題
    全站熱搜
    創作者介紹
    創作者 gamer99122 的頭像
    gamer99122

    菜鳥L的手札

    gamer99122 發表在 痞客邦 留言(0) 人氣()