ホームページ  >  記事  >  バックエンド開発  >  PHP string mbstring_PHP で中国語文字列を処理する具体的な方法の分析 チュートリアル

PHP string mbstring_PHP で中国語文字列を処理する具体的な方法の分析 チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:30:20864ブラウズ

複数の言語の共存は、マルチバイトを意味することを誰もが理解しています。PHP の組み込みの文字列長関数 strlen は、文字列によって占有されているバイト数を取得するだけです。 GB2312 中国語エンコードの場合、strlen で取得される値は中国語の文字数の 2 倍ですが、UTF-8 でエンコードされた中国語の場合、その差は 1 ~ 3 倍になります。 PHP 文字列 mbstring を使用すると、この問題をより適切に解決できます。 mb_strlen の使用法は strlen と似ていますが、文字エンコーディングを指定する 2 番目のオプションのパラメーターがある点が異なります。たとえば、UTF-8 文字列 $str の長さを取得するには、mb_strlen($str,’UTF-8’) を使用できます。 2 番目のパラメータを省略した場合は、PHP の内部エンコーディングが使用されます。内部エンコーディングは mb_internal_encoding() 関数を通じて取得できます。設定するには 2 つの方法があります:

1. php.ini で mbstring.internal_encoding = UTF-8 を設定します。2. mb_internal_encoding("GBK") を呼び出します。 PHP 文字列 mbstring に加えて、多くの切り取り関数があります。その中には、 mb_substr は文字を単語ごとに分割し、 mb_strcut は文字をバイトごとに分割しますが、どちらも文字の半分を生成しません。さらに、関数からの切り取りは、長さに異なる影響を与えます。 mb_strcut の切り取り条件は strlen 未満であり、mb_substr は strlen に等しいです。以下の例を参照してください。

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><</span><span> ?  </span></span></li><li><span>$</span><span class="attribute">str</span><span> = &lsquo;我是一串比较长的中文-www.jefflei.com&rsquo;;  </span></li><li class="alt"><span>echo &ldquo;mb_substr:&rdquo; . mb_substr($str, 0, 6, &lsquo;utf-8&prime;);  </span></li><li><span>echo &rdquo;  </span></li><li class="alt"><span>&ldquo;;  </span></li><li><span>echo &ldquo;mb_strcut:&rdquo; . mb_strcut($str, 0, 6, &lsquo;utf-8&prime;);  </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li>
<li><span> </span></li>
</ol>

出力は次のとおりです。比較
mb_strcut: 私は

PHP 文字列 mbstring は PHP のコア関数ではないことに注意してください。これを使用する前に、PHP でモジュールをコンパイルするときに mbstring サポートが追加されていることを確認する必要があります。コンパイル時に –enable-mbstring

(2) /usr/local/ lib/php.inc を変更します

default_charset = “zh-cn”
mbstring. language = zh-cn
mbstring.internal_encoding =zh-cn

PHP string mbstring クラス ライブラリには、mb_send_mail などのメール処理関数など、多くのコンテンツが含まれています。




http://www.bkjia.com/PHPjc/446311.html

www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/446311.html技術記事複数の言語が共存すると、PHP の組み込み文字列長関数 strlen は、文字列が占有するバイト数のみを正しく処理できなくなります。はい...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。