ホームページ >バックエンド開発 >PHPチュートリアル >PHP関数mb_strcut_PHPチュートリアルの使い方ヒントの共有

PHP関数mb_strcut_PHPチュートリアルの使い方ヒントの共有

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

私たちは PHP 関数 mb_strcut の使用法に似ていますが、文字列のエンコーディングを設定するために PHP 関数 mb_strcut の最後にもう 1 つのパラメータが追加される点が異なります。 php_mbstring.dll を開いていない場合は、php.ini で php_mbstring.dll を開く必要があります。この関数が有効になっているかどうかが不明な場合は、まず if(function_exist(mb_string)) を判断することをお勧めします。 :

<ol class="dp-xml"><li class="alt"><span><span class="tag">< ?</span><span class="tag-name">php</span><span> </span></span></li><li><span>echo mb_substr('这样一来我的字符串<br />就不会有乱码^_^', 0, 7, 'utf-8');  </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li></ol>

出力: このように、私の言葉

PHP 関数 mb_strcut の例

<ol class="dp-xml"><li class="alt"><span><span class="tag">< ?</span><span class="tag-name">php</span><span> </span></span></li><li><span>echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');  </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li></ol>

出力: このように

上記の例からわかるように、mb_substr は文字を単語ごとに分割しますが、PHP 関数はmb_strcut は文字を単語ごとに区切りますが、文字が半分になる現象は発生しませんが、出力時に切り取ったものが正しくない場合があり、中国語の文字も表示されます。これらの現象は、関数のコーディング方法が、表示する Web ページのコーディング方法と一致していないことが主な原因です。

ここでは、中国語の文字列をインターセプトするための PHP のカスタム関数も紹介します:


文字化けせずに中国語の文字列をインターセプトする PHP の方法

<ol class="dp-xml">
<li class="alt"><span><span>function GBsubstr($string, $start, $length) {  </span></span></li>
<li>
<span>if(strlen($string)</span><span class="tag">></span><span>$length){  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">str</span><span>=</span><span class="attribute-value">null</span><span>;  </span>
</li>
<li>
<span>$</span><span class="attribute">len</span><span>=$start+$length;  </span>
</li>
<li class="alt">
<span>for($</span><span class="attribute">i</span><span>=$start;$i</span><span class="tag"><</span><span>$len;$i++){  </span></li><li><span>if(ord(substr($string,$i,1))</span><span class="tag">></span><span>0xa0){  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">str.</span><span>=</span><span class="attribute-value">substr</span><span>($string,$i,2);  </span>
</li>
<li><span>$i++;  </span></li>
<li class="alt"><span>}else{  </span></li>
<li>
<span>$</span><span class="attribute">str.</span><span>=</span><span class="attribute-value">substr</span><span>($string,$i,1);  </span>
</li>
<li class="alt"><span>}  </span></li>
<li><span>}  </span></li>
<li class="alt"><span>return $str.'...';  </span></li>
<li><span>}else{  </span></li>
<li class="alt"><span>return $string;  </span></li>
<li><span>}  </span></li>
<li class="alt"><span>} </span></li>
</ol>

上記は、PHP 関数 mb_strcut を使用して問題を解決するための主な手順です。文字化けが出る。


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

本当http://www.bkjia.com/PHPjc/446298.html技術記事私たちは PHP 関数 mb_strcut に取り組んでいます。その使用法は substr() と似ていますが、文字列のエンコーディングを設定するために PHP 関数 mb_strcut の最後にもう 1 つのパラメーターを追加する必要がある点が異なります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。