Я храню данные в поле с именем message
. Примером этого поля является:
<br /><br /> shane! <br /><br /> ****** Original Message ****** Test Back <br /><br /> ****** Original Message ****** test
Когда я echo
это в <textarea>
, он отображается следующим образом:
shane! ****** Original Message ****** Test Back ****** Original Message ****** test
Как я могу echo
это, чтобы включить разрывы строк?
При выводе на текстовое поле вы должны позвонить htmlentities
htmlspecialchars
если ваш текст содержит HTML.
<textarea><?php echo htmlspecialchars($text); ?></textarea>
Это преобразует ваши <br />
в <br />
, Если вы оставите unencoded, они просто будут интерпретироваться как HTML.
Если ваша цель состоит в том, чтобы отобразить <br />
или другой HTML в текстовом поле, поскольку он написан в базе данных, вы должны избежать всего кода, который иначе интерпретируется как HTML.
редактировать
Если вы хотите вывести разрывы строк вместо <br />
вы можете использовать str_replace
:
<textarea><?php echo str_replace('<br />', "\r\n", $textarea); ?></textarea>
Но помните, что все остальные HTML будут интерпретироваться и не отображаться. Я думаю, вы должны решить свою проблему в источнике и сохранить CRLF в базе данных, если вам не нужен HTML.
Вы можете попробовать str_replace
заменить теги <br />
на символы конца строки.
str_replace('<br />', PHP_EOL, $textarea);
Тег не принимает HTML-код внутри него. Вместо этого вам нужно отформатировать код как в текстовом файле. Проверьте этот пример:
http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_textarea
Теперь замените исходный код следующим:
<!DOCTYPE html> <html> <body> <textarea rows="4" cols="50"> At w3schools.com you will learn how to make a website. We offer free tutorials in all web development technologies. </textarea> </body> </html>
Вы увидите, что форматирование внутри текстового поля очень похоже на тег. Поэтому ответ на ваш вопрос заключается в том, что вам нужно заменить каждый
символом новой строки.