Я использую текстовое поле, чтобы пользователи могли вводить комментарии. Однако, если пользователь вводит новые строки, новые строки не появляются при выводе. Есть ли способ сохранить разрывы строк.
Есть идеи, как сохранить разрывы строк?
Я использую текстовое поле, чтобы пользователи могли вводить комментарии. Однако, если пользователь вводит новые строки, новые строки не появляются при выводе. Есть ли способ сохранить разрывы строк.
Есть идеи, как сохранить разрывы строк?
Ответы:
Два решения для этого:
Функция PHP nl2br()
:
например,
echo nl2br("This\r\nis\n\ra\nstring\r");
// will output
This<br />
is<br />
a<br />
string<br />
Оберните ввод в <pre></pre>
теги.
nl2br()
:)
Вот что я использую
$textToStore = nl2br(htmlentities($inputText, ENT_QUOTES, 'UTF-8'));
$inputText
это текст, предоставляемый формой или текстовым полем.
$textToStore
- это текст, возвращаемый из nl2br
и htmlentities
, который будет сохранен в вашей базе данных.
ENT_QUOTES
преобразует как двойные, так и одинарные кавычки, поэтому у вас не будет проблем с ними.
Получил свой ответ: использование этой функции из данных из текстового поля решает проблему:
function mynl2br($text) {
return strtr($text, array("\r\n" => '<br />', "\r" => '<br />', "\n" => '<br />'));
}
Подробнее здесь: http://php.net/nl2br
Я использую эти два шага метода для сохранения того же текста, который находится в textarea, для хранения в mysql, и во время получения я также могу просто отображать простой текст ...
шаг 1:
$status=$_POST['status'];<br/>
$textToStore = nl2br(htmlentities($status, ENT_QUOTES, 'UTF-8'));
В запросе введите $textToStore
....
шаг 2:
напишите код для запроса выбора ... и значений прямого эха ....
Оно работает
function breakit($t) {
return nl2br(htmlentities($t, ENT_QUOTES, 'UTF-8'));
}
это может вам помочь
передать текстовое поле
почему делать это оооочень сложно, когда это может быть оооочень просто :)
//here is the pull from the form
$your_form_text = $_POST['your_form_text'];
//line 1 fixes the line breaks - line 2 the slashes
$your_form_text = nl2br($your_form_text);
$your_form_text = stripslashes($your_form_text);
//email away
$message = "Comments: $your_form_text";
mail("destination_email@whatever.com", "Website Form Submission", $message, $headers);
вам, очевидно, понадобятся заголовки и, вероятно, будет больше полей, но это ваше текстовое поле, о котором нужно позаботиться