PHP回显HTML标记

时间:2011-12-08 06:20:07

标签: php html tags

我遇到一些textarea问题。我使用像

这样的textarea将文本插入到我的数据库中
<textarea id="e1" name="content"></textarea>

然后我的php文件会在其上运行一些东西,如图所示,以便从\ n和\ n中生成HTML标记:

$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代码处理,然后回显到textarea。当它回应到textarea时,它以下列形式出现:

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

有没有办法让文字看起来像<br />标签一样,而不是以文字形式呈现?感谢您的帮助,如果不清楚我的意思,请告诉我。

4 个答案:

答案 0 :(得分:1)

您可以将\r\n保留在数据库中,然后当您想要输出到html时,只需通过nl2br()运行文本,该文本交换<br>元素的新行。如果你这样做,你不需要担心额外的转换,它只在你需要的时候完成。

答案 1 :(得分:0)

我不确定它有多有效但是

&#10; 

取代换行符应该有用。

答案 2 :(得分:0)

我是对的,你想用<br />标签替换换行符吗?你为什么不用nl2br()

如果您想继续使用您的示例,则必须使用:

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

答案 3 :(得分:0)

替换您的代码

$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));