中国語のウェブサイトは通常、gbk/gb2312 または utf-8 の 2 つのエンコーディングを選択します。
gbk エンコーディングの各中国語文字は 2 バイトを占めます。例:
<code><span>$zhStr</span> = ‘您好,中国!’; <span>echo</span> strlen(<span>$zhStr</span>); <span>// 输出:12</span></code>
<code>utf-8编码下每个中文字符所占字节为3,例: </code>
<code><span>$zhStr</span> = ‘您好,中国!’; <span>echo</span> strlen(<span>$zhStr</span>); <span>// 输出:18</span></code>
それでは、この一連の中国語文字列の長さを計算するにはどうすればよいでしょうか? gbk で中国語の文字列の長さを 2 で割ったり、utf-8 エンコーディングで 3 で割ったりするだけでは十分ではないと言う人もいるかもしれません。ただし、文字列は正直ではなく、99% の確率で中国語と英語が混在して表示されることを考慮する必要があります。
これは WordPress のコードです。主なアイデアは、まず正規表現を使用して文字列を個々の単位に分解し、次に文字列の長さである単位数を計算することです。コードは次のとおりです (文字列のみ)。 UTF-8 でエンコードされたものは処理できます) :
<code><span>$zhStr</span> = ‘您好,中国!’; <span>$str</span> = ‘Hello,中国!’; <span>// 计算中文字符串长度</span><span><span>function</span><span>utf8_strlen</span><span>(<span>$string</span> = null)</span> {</span><span>// 将字符串分解为单元</span> preg_match_all(“/./us”, <span>$string</span>, <span>$match</span>); <span>// 返回单元个数</span><span>return</span> count(<span>$match</span>[<span>0</span>]); } <span>echo</span> utf8_strlen(<span>$zhStr</span>); <span>// 输出:6</span><span>echo</span> utf8_strlen(<span>$str</span>); <span>// 输出:9</span></code>
以下に、中国語の文字列の長さを正確に計算する関数をカプセル化します。 $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i
').text(i)); }; $numbering.fadeIn(1700); }); }); 上記では、文字列と PHP コンテンツを含む中国語の文字列の長さをカウントする PHP を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。