我有从db调用的textarea数据,这些数据预计会显示在没有<br />
的新行中,如何打破<br />
并在textarea中显示为新行?
我的数据库列也完全存储为hello<br />world
。
感谢。
答案 0 :(得分:3)
您应该做的是 NOT 首先在您的数据库中存储HTML。
将文字存储在数据库中,将换行符保持为"\n"
。
在页面上呈现后,使用nl2br(htmlspecialchars($str, ENT_QUOTES, 'UTF-8'))
。
答案 1 :(得分:1)
使用:
$text = 'This is some text<br />With a line break in it';
$text = str_replace('<br />', "\n", $text);
// Outputs:
This is some text
with a line break in it
确保str_replace中的\n
参数介于双引号之间。它不会在单引号之间起作用。
答案 2 :(得分:0)
怎么样
str_replace('<br />', PHP_EOL, 'hello<br />world')
答案 3 :(得分:-1)
如果仅适用于新行,则可以使用str_ireplace
$text = str_ireplace("<br />", "\n", $text);
$text = str_ireplace("<br>", "\n", $text);
答案 4 :(得分:-1)
我喜欢做的是在数组中定义多行字符串:
$output = array();
$output[] = 'Hello<br />';
$output[] = 'World.<br />';
$output[] = '<br />';
$output[] = 'This is a test.';
echo implode("\r\n", $output);
这将返回HTML代码:
Hello<br />
World.<br />
<br />
This is a test.
答案 5 :(得分:-1)
您可以使用我用于类似内容的urlencode
和urldecode
,例如:
将数据存储在数据库中,如下所示:
$html = urlencode($_POST['content']);
使用这样的普通查询:
INSERT INTO table (Content) VALUES ('".$html."')
然后使用以下内容将其从数据库中删除:
$strSQL1 ="SELECT Content FROM table;
$objQuery1 = mysql_query($strSQL1);
$objResult1 = mysql_fetch_array($objQuery1);
$show = urldecode($objResult1["Content"]);
然后使用以下内容填充textarea:
<textarea name="content"><?php echo "$show"?></textarea>
答案 6 :(得分:-2)
我在HTML5中这样做的方法是在第1行和第2行之间放置很多空格。
这是一个肮脏的黑客,但它的确有效。
<textarea rows="8" placeholder="Line 1
Line 2
Line 3"></textarea>
在您的数据库中存储这么多空格可能并不理想,但我不明白为什么它不起作用。