我遇到一些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 />
标签一样,而不是以文字形式呈现?感谢您的帮助,如果不清楚我的意思,请告诉我。
答案 0 :(得分:1)
您可以将\r\n
保留在数据库中,然后当您想要输出到html时,只需通过nl2br()
运行文本,该文本交换<br>
元素的新行。如果你这样做,你不需要担心额外的转换,它只在你需要的时候完成。
答案 1 :(得分:0)
我不确定它有多有效但是
取代换行符应该有用。
答案 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));