Это может показаться обманом, но будьте уверены, что это не так - я искал как 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 , такие как «\ п» в нем, я бы ударил его либо str_replace()
или preg_replace()
и сделать с ней, но я понятия не имею , какие иглы для подачи либо из этих функций , если там нет ни одного символа там в первую очередь.
Я могу вручную получить доступ к соответствующему полю в БД, нажимать клавишу Backspace для каждого перехода на новую строку, и то, что я позже хочу сделать со строкой, работает. Так что я знаю, что мне нужен вышеуказанный формат.