我无法从数据库中获取数据并在HTML页面textarea中回显。

这是用于将数据导入数据库的代码:

$_SESSION['content'] = mysqli_real_escape_string($link, strip_tags($_POST['content'],'<a>'));

除了数据库中的链接和存储之外,这只是简单地剥离HTML标记。 如果你查看数据库,换行符是不可见的,但我认为它们是\\ n和\\ r \\ n。

如果我要输入textarea:

This should be a 

New line

数据库将其存储为:

This should be a<br>
New line

当回显到textarea时,这就是显示的内容:

This should be a \r\n\r\nNew line

我确定我错过了一些非常简单的东西,任何帮助都非常感激。

更新:

如果我删除mysqli_real_escape_string,换行符会被保留并完美运行,我是否必须为此牺牲安全性?

解决了:

导致问题的mysqli_real_escape_string,不会回显已应用此变量的变量。 从数据库插入,删除等时只使用mysqli_real_escape_string,而不是之前,绝对不是之后;)

感谢大家!

===============>>#1 票数:5

使用正确的HTML / CSS。

;-)

该行断开HTML预标记中的所有工作,或者将CSS空白属性设置为的标记:

white-space: pre;

资源:

http://www.w3schools.com/cssref/pr_text_white-space.asp

http://www.quirksmode.org/css/whitespace.html

===============>>#2 票数:1

这对我有用:

function br2nl( $input ) {
    return preg_replace( '/\<br.*\>/Ui', '', $input );
}

===============>>#3 票数:1

对于非常长的行,您还需要包装文本,而不是可能突破其父容器。 要覆盖这种情况,还要保留新行,请使用以下css:

white-space: pre-wrap;

资源: https//css-tricks.com/almanac/properties/w/whitespace/

===============>>#4 票数:1

首先,您不应该使用nl2br,因为这会将您的\\n更改为<br>

你很可能需要echo stripslashes($_SESSION['content'])斜线echo stripslashes($_SESSION['content'])

编辑以下进一步评论:

如果数据存储为数据库中的<br> ,则可以执行str_replace('<br>',"\\n",$string); 这会将<br>转换成\\n

===============>>#5 票数:0

nl2br函数正在将该内容用作字符串: http ://codepad.org/M2Jw9KQJ

这让我相信你没有回应你声称自己的内容。

您确定数据库中的内容与您说的一样吗? 也许你需要反过来:

function br2nl($ data){return preg_replace(“!<br。*>!iU”,“\\ n”,$ data);}

  ask by Cristian translate from so

未解决问题?本站智能推荐:

4回复

NL2BR()PHP问题有帮助吗?

因此,您可以在我的网站上发送消息。 我使用nl2br()函数,因此如果有人按下Enter键,他们的文本将带有换行符。 但是我意识到,如果键入文本的人不按Enter键,而是被文本区域包裹,则文本仍会损坏。 如何避免这种情况? (如果用户不按Enter,如何避免换行)
1回复

PHP nl2br()到新的MYSQL行

我有一个文本区域,用户可以在其中输入多行。 我想确保输入新行后,它将作为新记录插入到我的表中。 如何使用nl2br()函数完成此任务? 有没有我可以忽略的简单解决方案,还是需要除nl2br以外的其他解决方案?
1回复

nl2br和htmlentities在textarea上

因此,我在这个textarea中,我希望人们能够写一些关于他们自己的东西,并能够在特定单词周围使用引号,同时又能够撰写新的文本部分而不必编写<br> 。 我尝试这样做,但失败了。 我究竟做错了什么? 我将此插入到数据库中,但是当我尝试将其回显时,中断不会出现。 我
1回复

使用nl2br保留textarea到mysql的新行…如何将数据很好地返回到文本框?

我有一个带有textarea的表单,其结果被插入到mysql数据库中。 我正在使用nl2br保留换行符。 但是,因为这会在文本中插入br,所以当用户去编辑他们在textarea中输入的内容时,它会显示出textarea中保存在mysql中的所有br(对于不懂html的人来说看起来很难看)
1回复

Nl2br数据除外
  • 标签
  • 我希望能够从mysql获取html格式的数据,并将新行转换为<br>或<p>标签。 我已经能够用white-space: pre-wrap有效地做到这一点white-space: pre-wrap在CSS中white-space: pre-wrap ,除了使用IE7
    2回复

    为什么nl2br()不起作用

    我正在尝试格式化$ c(基本上这是我需要以段落形式出现的信息块)。 我正在使用nl2br()引入换行符。 所以我有以下代码: 问题是$ c显示两次。 曾经在$ search_output中未经格式化,然后在echo nl2br()中进行了格式化,但是它在页面的顶部弹出并弄乱了我的布
    1回复

    nl2br无法与BBCode一起使用

    我的表中有这样的数据: 但是,当我从数据库中检索数据时,它显示: 如您所见,没有换行符。 这是我的整个代码: 如果我替换$description =mysql_result($results,$i,"description"); 与$description =nl2b
    2回复

    如何使用nl2br使用php获取textarea的数据?

    我是php新手。 我有一个网络表格。 我在其中使用textarea。 我还有另一个PHP页面,在其中显示db中的数据并应用CRUD操作。 现在,当我单击“编辑”按钮时,我的所有表单数据已从db中获取,但是textarea文本的格式已更改,这是问题。 它显示\\r\\r\\r\\n我使用
    1回复

    mysql显示回车,但是nl2br不维护它们

    我在MySQL数据库中有一个文本字段,在PHPMyAdmin中显示为具有换行符或回车符。 但是,当在网页上显示该文本字段时,它们不存在。 我已经尝试过nl2br()。 我已经在\\ n \\ r \\ r \\ n&\\ v上尝试过str_replace。 一切都没有运气。 原
    4回复

    如何使用nl2br()来处理带有'\ r \ n'的字符串?

    我在表单提交时从admin到textarea检索存储在数据库中的产品描述值。 当我从数据库中选择描述时,我得到$description = $row['description']; 我想在主页上回显$ description如下: echo nl2br($description); 但我看