0

我从 db 调用了我的 textarea 数据,这些数据预计将在新行中显示而没有<br />沿,我如何将<br />textarea 中的并显示到新行中?

我的数据库列也hello<br />world完全存储。

在此处输入图像描述

谢谢。

4

7 回答 7

3

您应该首先不要将 HTML 存储在数据库中。

  1. 将文本存储在数据库中,将换行符保留为"\n".

  2. 在页面上呈现后,使用nl2br(htmlspecialchars($str, ENT_QUOTES, 'UTF-8')).

于 2013-05-22T07:37:34.430 回答
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

确保\nstr_replace 中的参数在双引号之间。它不会在单引号之间工作。

于 2013-05-22T07:27:31.663 回答
0

关于什么

str_replace('<br />', PHP_EOL, 'hello<br />world')
于 2013-05-22T07:28:47.347 回答
-1

如果只是换行,可以使用str_ireplace

$text = str_ireplace("<br />", "\n", $text);
$text = str_ireplace("<br>", "\n", $text);
于 2013-05-22T07:28:42.110 回答
-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.
于 2013-05-22T07:30:44.760 回答
-1

您可以使用urlencodeand urldecodewhich 我用于类似的事情,例如:

将数据存储在数据库中,如下所示:

$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 name="content"><?php echo "$show"?></textarea>
于 2013-05-22T07:43:49.200 回答
-2

我在 HTML5 中这样做的方式是在第 1 行和第 2 行之间放置大量空格。

这是一个有点肮脏的黑客,但它的工作原理。

<textarea rows="8" placeholder="Line 1                                     
                                                                        Line 2
                                                                        Line 3"></textarea>

在数据库中存储这么多空格可能并不理想,但我不明白为什么它不起作用。

于 2013-05-22T07:29:24.773 回答