4
<input type="text" id="title" name="title" size="50" maxlength="110" />

ほら、最大長は110ですが、使用時に114文字入力したことにショックを受けました。

echo strlen($title);

何か案が?

ちなみに、私が入力したのは日本語のテキストでした。どうしたの?

4

3 に答える 3

13

日本語のテキストは、おそらくマルチバイト文字エンコーディングを使用しています。したがって、 mb_strlen()を使用する必要があります。

よろしくお願いします、ファビアン

于 2009-12-05T16:09:32.217 に答える
5

どうしたの?

PHPの文字列処理。これは、1文字= 1バイトであるという仮定に基づいており、プログラマーがあらゆる場所でエンコードを処理し、マルチバイトエンコードを使用する可能性のある文字列を処理する場合は常に最新のmb_*関数を使用することを忘れないでください。

于 2009-12-05T16:28:23.063 に答える
-2

maxlengthは単なるブラウザのロックですが、Unicodeエンコーディングを含むあらゆる方法でバイパスできます。このためのサーバー側の制御を提供する方がよい

于 2009-12-05T18:00:49.443 に答える