Я использую jQuery для подсчета значения текстовой области на лету:
function count_chars () {
count_chars=$('#text_textarea').val().length;
}
... затем при отправке сериализуйте форму, отправьте текст текстовой области через ajax в файл php, который затем проверяет текст на стороне сервера. Однако у меня возникли проблемы с новыми строками и пробелами.
Конечно, если я просто получу текст «как есть» из текстовой области, php будет считать каждую новую строку двумя или четырьмя символами (\n
.,... ). Поэтому я попытался заменить их чем-то вроде этого:
strlen(str_replace(array("\r", "\n"), ' ', $text)))
или это:
strlen(preg_replace('/\s+/', ' ', trim($text)))
Однако, если я получил, например. 10 абзацев и jQuery возвращает 2500 символов, php вернет либо 2510, либо 2490, в зависимости от того, заменю ли я новые строки пробелом или удалю их полностью. То есть разница 20, а новых строк всего 10...?
Что мне не хватает? Как я могу заставить php возвращать тот же результат, что и jQuery? Где проблема, в php или в jQuery?