php substr,iconv_substr,mb_substr

2903 ワード

phpで中国語文字列の切り取りを行う場合、2つの関数iconv_がよく使われます.substrとmb_substr、この2つの関数をどのように選択すればいいですか?ここで紹介した例を参考にすれば分かります.
関数substrとiconv_を使用したサンプルコードsubstr,mb_substr
 1 <html>

 2 <head><meta charset='utf-8'>

 3 <title>       _    _www.jbxue.com</title>

 4 </head>

 5 <body>

 6 <?php

 7 $str='123    456       ';

 8 echo substr($str,0,4);

 9 echo '<br>';

10 echo iconv_substr($str,0,4,'utf-8');

11 echo '<br>';

12 echo mb_substr($str,0,4,'utf-8');

13 ?>

14 </body>

15 </html>

 
説明:上記のコードは2つの関数iconv_を使用しています.substrとmb_substrは、現在の文字の下で文字列の切り取りを行い、中国語の文字の切り取りが乱れないようにすることができます.どうすればいいですか?
1、iconvライブラリは一部のオペレーティングシステムで正しく動作しない可能性があります.GNU拡張ライブラリをインストールして正常な動作を保証する必要があります.mb_substr関数の互換性がより良い.2、iconv関数は、現在の文字列を対応する符号化に変換して切り取るが、mb関数は指定した符号化に直接基づいて切り取る(安全なマルチバイト切り取りを提供する)ため、mb関数の切り取り効率が高い.だからmb_substr関数は、中国語文字列の切り取りに最適です.