Я использую textarea, чтобы пользователи могли вводить комментарии. Однако, если пользователи вводят новые строки, новые строки не отображаются, когда они выводятся. Есть ли способ сделать перерывы на линии.
Любая идея, как сохранить разрывы строк?
Два решения для этого:
PHP-функция nl2br()
:
например,
echo nl2br("This\r\nis\n\ra\nstring\r"); // will output This<br /> is<br /> a<br /> string<br />
Оберните ввод в теги <pre></pre>
.
См. W3C Wiki – HTML / Elements / pre
Вот что я использую
$textToStore = nl2br(htmlentities($inputText, ENT_QUOTES, 'UTF-8'));
$inputText
– это текст, предоставленный формой или текстовым $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 getBreakText($t) { return strtr($t, array('\\r\\n' => '<br>', '\\r' => '<br>', '\\n' => '<br>')); }
почему make является sooooo трудным людям, когда это может быть soooo легко 🙂
//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);
вам, очевидно, понадобятся заголовки и, вероятно, больше полей, но это ваше текстовое поле,