ホームページ  >  記事  >  バックエンド開発  >  substr()、mb_substr()、mb_strcut(漢字インターセプト)の違いと使い方

substr()、mb_substr()、mb_strcut(漢字インターセプト)の違いと使い方

巴扎黑
巴扎黑オリジナル
2016-11-23 14:11:131218ブラウズ

PHP の substr() 関数はテキストを分割できますが、分割するテキストに漢字が含まれている場合は、mb_substr()/mb_strcut 関数を使用することができます。 substr() と似ていますが、mb_substr()/mb_strcut の最後にパラメータを 1 つ追加するだけで、文字列のエンコーディングを設定できます。ただし、ほとんどのサーバーでは php_mbstring.dll を php で開く必要があります。イニ。

例:

<?php 
echo mb_substr(&#39;这样一来我的字符串就不会有乱码^_^&#39;, 0, 7, &#39;utf-8&#39;); 
?>

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

<?php 
echo mb_strcut(&#39;这样一来我的字符串就不会有乱码^_^&#39;, 0, 7, &#39;utf-8&#39;); 
?>

出力: このように
上記の例からわかるように、mb_substr は文字を単語ごとに分割しますが、mb_strcut は文字をバイトごとに分割します。半分の文字は生成されません...

MBstring 関数の説明:

php の mbstring 拡張モジュールは、マルチバイト文字処理機能を提供します。最も一般的に使用される方法は、mbstring を使用してマルチバイト中国語文字を分割することです。これにより、この発生を回避できます。 PHP の拡張機能であるため、一部のカスタム マルチバイト セグメンテーション関数よりもパフォーマンスが優れています。

mbstring 拡張機能には、同様の機能を持ついくつかの関数、mb_substr および mb_strcut が用意されています。説明はマニュアルを参照してください。

mb_substr
mb_substr() は、start パラメータと length パラメータで指定された str の部分を返します。

mb_substr() は、str の先頭から位置をカウントします。文字の位置は 0、2 番目の文字の位置は 1 などとなります。

mb_strcut
mb_strcut() は、start パラメータと length パラメータで指定された str の部分を返します。

mb_strcut() は、別のメソッドで mb_substr() と同等の操作を実行します。開始位置がマルチバイト文字の 2 バイト目以上の場合、マルチバイト文字の最初のバイトから開始します。

長さより短い文字列と、マルチバイト文字列の一部ではない文字を減算します。

別の例として、それぞれ mb_substr と mb_strcut を使用してセグメント化されたテキストがあります:

PLAIN TEXT
CODE:

<?php 
$str = &#39;我是一串比较长的中文-www.webjx.com&#39;; 
echo "mb_substr:" . mb_substr($str, 0, 6, &#39;utf-8&#39;); 
echo "<br>"; 
echo "mb_strcut:" . mb_strcut($str, 0, 6, &#39;utf-8&#39;); 
?>

出力結果は次のとおりです:

mb_substr: I am は文字列です 比較
mb_strcut:私は

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:php--抽象クラス次の記事:php--抽象クラス