PHP повторяет HTML-теги - PullRequest
       3

PHP повторяет HTML-теги

0 голосов
/ 08 декабря 2011

У меня проблема с некоторыми текстовыми сообщениями. Я вставляю текст в свою базу данных, используя текстовое поле, например

<textarea id="e1" name="content"></textarea>

Мой php-файл затем запускает некоторые вещи, как показано, чтобы сделать HTML-теги из \ n и \ r:

$str     = $_POST['content'];
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';
$content = mysql_real_escape_string(str_replace($order, $replace, $str));

и результат вставляется в базу данных. Затем я вызываю результат из базы данных в $content и помещаю его в текстовую область следующим образом:

<textarea id="e1" name="content"><?php echo $content ?></textarea>

При просмотре этой страницы видны теги <br />.
Пример:
Я отправляю это в текстовую область

Hello,
This is text.
Best Rergards,
Testificus

Он обрабатывается моим php-кодом, а затем отображается в текстовой области. Когда оно отражается в текстовой области, оно появляется в виде:

Hello,<br />This is text.<br />Best Regards,<br />Testificus

Есть ли способ заставить текст выглядеть как прежде с тегами <br /> в действии, а не представлять как текст? Спасибо за вашу помощь и дайте мне знать, если не ясно, что я имею в виду.

Ответы [ 4 ]

1 голос
/ 08 декабря 2011

Вы можете оставить \r\n в базе данных, а затем, когда вы хотите вывести в html, просто пропустите текст через nl2br(), который меняет строки для <br> элементов.Если вы делаете это таким образом, вам не нужно беспокоиться о дополнительной конвертации, это делается только один раз, когда вам это нужно.

0 голосов
/ 28 апреля 2017

Замените ваш код

$str     = $_POST['content'];
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';
$content = mysql_real_escape_string(str_replace($order, $replace, $str));

с этим кодом:

$str     = $_POST['content'];
$content = mysql_real_escape_string(nl2br($str));
0 голосов
/ 08 декабря 2011

Я прав, вы хотите заменить символы новой строки тегом <br />? Почему бы вам просто не использовать nl2br().

Если вы хотите продолжать использовать свой пример, вы должны использовать:

$replace = "<br />\r\n";

0 голосов
/ 08 декабря 2011

Я не уверен, насколько это верно, но

&#10; 

вместо новых строк должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...