Получите тот же результат для php `str _len `, что и для jQuery `.val ().length()`

Я использую 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?

8
задан Chris 14 August 2012 в 10:35
поделиться