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 = "";
|
文字列は 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 序数の場合 を意味します。
$ Tmpstr. = Substr ($ Str, $ i, 3) // 変数 $ tmpstr を与えるために毎回 3 文字を取得します、つまり待機します
} 他{
} |