この記事では主に PHP の substr() 関数を紹介します。中国語の文字列をインターセプトする際の文字化けの問題を説明するコード例を示します。必要な方は参考にしてください。
PHP で文字列をインターセプトするために substr() を使用したい場合は、すべて英語であれば問題ありません。中国語や英語が含まれている場合は悲惨ですが、他の方法で問題を解決できますので、ご安心ください。
PHPが中国語の文字列をインターセプトすると文字化けが発生する これは以前、メタ情報を自動生成する記事を書きましたが、その記事は記述方法としてPHPを使用するというものでした。と思ったのですが、IE6ではCSSが読み込めないという事が出てきましたので補足です。
まず、IE6 が時々 CSS のロードに失敗する理由は、ファイルが文字化けしており、CSS をロードする後続のリンクが IE6 によって正しく解析されないためです。つまり、CSS のない、純粋な HTML ページが表示されました。問題を明確にした後、残りの問題は簡単に解決できます。それは文字化けを防ぐことです。Wange が提供する関数が文字化けするため、この文字化けの問題を解決する新しい PHP 関数を見つけました。
substr() 関数はテキストを分割できますが、分割するテキストに中国語の文字が含まれている場合、問題が発生することがよくあります。
mb_substr() の使用法は、文字列のエンコーディングを設定するために最後にパラメーターが 1 つ追加されることを除いて、substr() と似ています。
Wangeメソッドを改良した理由が分かるはずです~~
以下では、より高度な処理メソッドをいくつか紹介します
例1
コードは次のとおりです
function func_chgtitle($str,$len) { //$length我们允许字符串显示的最大长度 $tmpstr = ""; $strlen = $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); } return $tmpstr; }
例 2
文字列は UTF-8 としてエンコードされ、1 つの中国語文字が 3 バイトを占めます:
public static function chinesesubstr($str, $start, $len) { // $str は文字を参照します文字列、$start は文字列の開始位置を指し、$len は文字列の長さを指します
$strlen = $start + $len; // $strlen を使用して全長を保存します文字列の、つまり文字列の開始位置から文字列の全長までのコードです
コードは次のとおりです
for($i = $start; $i < $strlen;) { if (ord ( substr ( $str, $i, 1 ) ) > 0xa0) { // 如果字符串中首个字节的ASCII序数 值大于0xa0,则表示汉字 $tmpstr .= substr ( $str, $i, 3 ); // 每次取出三位字符赋给变量$tmpstr,即等 于一个汉字 $i=$i+3; // 变量自加3 } else{ $tmpstr .= substr ( $str, $i, 1 ); // 如果不是汉字,则每次取出一位字符赋给 变量$tmpstr $i++; } } return $tmpstr; // 返回字符串 }
要約:上記がこの記事の全内容です。みんなの学習に役立ちます。
関連する推奨事項:
php Oracleストアドプロシージャのグラフィック説明にアクセス
以上がphpのsubstr()による漢字文字化け問題の解決方法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。