ホームページ > バックエンド開発 > PHPチュートリアル > PHP中国語文字列インターセプト方法例まとめ

PHP中国語文字列インターセプト方法例まとめ

怪我咯
リリース: 2023-03-14 08:14:01
オリジナル
1976 人が閲覧しました

この記事では主に PHP 中国語文字列インターセプトメソッドの例を紹介し、一般的な文字列インターセプト関数を分析および比較し、必要な方は参考にしてください

の例を示します。この記事では、PHP で中国語の文字列をインターセプトする方法を要約します。これは非常に実用的なテクニックです。皆さんの参考に共有してください。具体的な方法は次のように分析されます:

PHP 関数substr を使用して中国語の文字をインターセプトすると、主に substr が中国語の文字を半分に「見た」可能性があるため、文字化けが発生する可能性があります。

解決策は次のとおりです:

1. mb

string拡張ライブラリのmb_substrインターセプトを使用して、文字化けを回避します。

2. インターセプト関数を自分で作成しますが、効率は mbstring 拡張ライブラリを使用するほど高くありません。

3. インターセプトした文字列を出力するだけの場合は、substr($str, 0, 30).chr(0) のように実装できます。

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

例を 2 つ挙げます:

① mb_substr の例

<?php
echo mb_substr(&#39;这样一来我的字符串就不会有乱码^_^&#39;, 0, 7, &#39;utf-8&#39;);
//输出:这样一来我的字
?>
ログイン後にコピー

② mb_strcut の例

<?php
echo mb_strcut(&#39;这样一来我的字符串就不会有乱码^_^&#39;, 0, 7, &#39;utf-8&#39;);
//输出:这样一
?>
ログイン後にコピー

上記の例を通して、mb_substr は文字を単語ごとに分割し、mb_strcut は文字をバイトごとに分割することがわかりますが、どちらの現象も生成されません。半分の文字の。

文字化けせずに中国語のテキスト文字列をインターセプトする PHP メソッド:

<?php
//此函数完成带汉字的字符串取串
function substr_CN($str,$mylen){ 
$len=strlen($str);
$content=&#39;&#39;;
$count=0;
for($i=0;$i<$len;$i++){
if(ord(substr($str,$i,1))>127){
$content.=substr($str,$i,2);
$i++; 
}else{
$content.=substr($str,$i,1);
}
if(++$count==$mylen){
break;
}
}
echo $content;
}

$str="34中华人民共和国56";
substr_CN($str,3);//输出34中
?>
ログイン後にコピー

以上がPHP中国語文字列インターセプト方法例まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート