Для передачи данных посредствам AJAX или других JavaScript-функций, иногда требуется избавиться от переносов строк. Как показала практика, просто удалить или заменить командные символы возврата и новой строки, \r и \n, недостаточно.
Приведу наиболее полную последовательность «нежелательных» символов для замены, и их обработку через PHP-функцию str_replace():
// массив спецсимволов для замены $search = array(PHP_EOL, chr(10), chr(13), '\r' , '\n', '\t', '\x0B', '\0'); // на что заменять $replace = ''; // текст с переносами строк $sometext = '...'; // функция замены переноса строк $newtext = str_replace($search , $replace, $sometext);
При желании можно заменять символы не на пустую строку, а на уникальный флаг, например %newline%, или HTML-тег <br />. Тогда процесс станет обратимым и переносы возможно будет восстановить.
Полезная функция json_encode(), переводит массив в JSON, а заодно и символы экранирует. Пример в этой статье http://www.rebelcode.ru/php/ajax-avtorizaciya-v-cms-netcat/