ホームページ  >  記事  >  バックエンド開発  >  php substr() 関数が文字化けした中国語の文字列をインターセプトする_PHP チュートリアル

php substr() 関数が文字化けした中国語の文字列をインターセプトする_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:44:451306ブラウズ

phpで、substr()を使って英語の文字列をインターセプトしたい場合、中国語や英語が含まれている場合は問題ありませんが、皆さんも同様です。 心配しないでください。他の方法を使用して解決できます。

PHP が中国語の文字列をインターセプトし、文字化けして表示される これは、以前にメタ情報の自動生成に関する記事を書きました。

、その記事は、記述方法として記事の最初の数単語をインターセプトするためにphpを使用するという内容ですが、IE6でCSSを読み込めない現象が発生しています、こちら

サプリメントを作ります。

まず、IE6 が時々 CSS の読み込みに失敗する理由は、ファイルが文字化けしており、その結果

が発生するためです。

上記の CSS をロードしているリンクは、IE6 では正しく解析できません。つまり、CSS のない、純粋な HTML ページが表示されました。

問題を明確にした後、残りの問題は簡単に解決できます。それは、Wangeが提供する機能が文字化けしているため、もう一度探してください

この文字化けしたコードの問題を解決するために php 関数を作成しました。

substr() 関数はテキストを分割できますが、分割するテキストに中国語の文字が含まれている場合、問題が発生することがよくあります。

mb_substr() この関数の使用法は substr() と似ていますが、文字列のエンコーディングを設定するために最後にパラメーターが 1 つ追加される点が異なります。

これを読めば、私がワンゲの方法を改良した理由が分かるはずです~~

さらに高度な処理方法をいくつか紹介します

例1

コードは次のとおりですコードをコピー
function func_chgtitle($str,$len) { //$length は文字列表示に許可される最大長です

$tmpstr = "";
$strlen = $len;
for($i = 0; $i If(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i, 2);
$i++;
} 他
$tmpstr .= substr($str, $i, 1);
}
$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 を与えるために毎回 3 文字を取得します、つまり待機します

漢字一文字で

​​​​​​​​ } 他{
$tmpstr .= substr ( $str, $i, 1 ); // 漢字でない場合は 1 文字ずつ取り出して
に代入します
変数 $tmpstr

$i++;

}
}
return $tmpstr // 文字列を返します
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/633064.html技術記事 php で、substr() を使用して英語だけの文字列をインターセプトしたい場合、中国語や英語が含まれている場合は問題ありませんが、他の文字列を使用できるので心配しないでください。それを解決する方法。う…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。