Как удалить разрывы строк (без символов!) из строки?

Это может показаться обманом, но будьте уверены, что это не так — я искал ответ на мою проблему как в SO, так и в остальной части Интернета и в итоге нашел те же недостаточные «решения». и более. Во всяком случае, вот оно:

Я сохраняю пользовательский ввод из текстовой области в базу данных MySQL (в среде WordPress, но я считаю, что это не должно иметь значения для этой проблемы). Позже он извлекается из БД для отображения администраторам в бэкэнде сайта. Проблема возникает, когда пользователи отправляют текст с разрывами строк (т. е. нажимают клавишу Enter).

Пример строки может выглядеть следующим образом:

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!

Greetings,
Bill

В строке нет символов конца строки ("\n", "\r" и т.п.).

Я использую nl2br()для создания HTML-вывода, но этого недостаточно. Результат будет следующим:

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill

Что, насколько я понимаю, является ожидаемым результатом nl2br(), так как он вставляет теги и не должен заменять разрывы строк в первом место?

Однако формат, который мне нужен, будет следующим:

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill

Если бы в строке были символы EOL, такие как "\n", я бы использовал либо str_replace(), либо preg_replace()и покончим с этим, но я понятия не имею, какую иглу кормить любой из этих функций, если там вообще нет символов.

Я могу вручную получить доступ к соответствующему полю в БД, нажать Backspace для каждого разрыва строки, и то, что я позже хочу сделать со строкой, работает. Итак, я знаю, что мне нужен вышеуказанный формат.

131
задан Ben Roux 6 March 2015 в 23:04
поделиться