解決PHP截取中文字串問題

來源:互聯網
上載者:User
PHP截取字串如果是英文那很好辦,直接用substr就行了,一般不會出現亂碼.中文就有點麻煩了.
下面給出兩種解決辦法:
(一)直接使用Multi-Byte函數庫的mb_substr();函數就行了,執行個體代碼如下

";   ?>

這種方法簡單,快速,安全,漂亮,誘惑...反正什麼好詞都可以形容它,但是,可惜我的GoDaddy主機不支援,所以得另尋出路
(二)自訂截取中文字串函數,基本上就是仿照mb_substr寫個函數,直接調用罷了,以下為我找到的代碼,其實很簡單

=161))          //是漢語                {               $start_index+=2;           }           else                                          //是英文           {               $start_index+=1;           }               }           $chr_index=$start_index;       //截取       for ($i=0;$i<$len;$i++)       {           $asc=ord($str_input{$chr_index});           if ($asc>=161)           {               $return_str{$i}=chr($asc);               $return_str{$i+1}=chr(ord($str_input{$chr_index+1}));               $len+=1; //結束條件加1               $i++;    //位置位移量加1               $chr_index+=2;               continue;                       }           else            {               $return_str{$i}=chr($asc);               $chr_index+=1;           }       }           return trim($return_str);   }//en
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.