jQuery を使用して、その場でテキストエリアの値をカウントします。
function count_chars () {
count_chars=$('#text_textarea').val().length;
}
...次に、送信時にフォームをシリアル化し、テキストエリアのテキストを ajax 経由で php ファイルに送信し、サーバー側でテキストを検証します。ただし、改行とスペースに問題がありました。
もちろん、テキストエリアから「そのまま」テキストを取得すると、php は各改行を 2 文字または 4 文字 ( \n
, ...) としてカウントします。だから私はそれらを次のようなものに置き換えようとしました:
strlen(str_replace(array("\r", "\n"), ' ', $text)))
またはこれ:
strlen(preg_replace('/\s+/', ' ', trim($text)))
ただし、たとえば 10 個の段落があり、jQuery が 2500 文字を返す場合、改行をスペースに置き換えるか完全に削除するかによって、php は 2510 または 2490 を返します。だから差は20なのに改行は10しかない…?
私は何が欠けていますか?jQueryと同じ結果を返すようにphpを取得するにはどうすればよいですか? PHPまたはjQueryのどこに問題がありますか?