0

我正在使用 textarea 来获取我插入数据库的数据。

我正在使用 htmlspecialchars() 来摆脱单引号和双引号,但它不会将新行转换为某些东西,所以我留下了一段很长的代码,它没有新行并且看起来很乱。

我已经检查了手册,但我找不到如何转换它。

我该怎么做?

编辑:

我的预期输出与用户输入的相同。

所以如果他们输入到文本区域......

Hi
This is another line
This is another line

它会像...一样存储到数据库中

Hi\r\nThis is another line\r\n This is another line. 

或类似的东西。

然后当我再次回应它时,它应该没问题。

4

3 回答 3

2

安东尼,

如果您指的是何时将其取出并希望它看起来不错,并且您没有将其放回文本区域,则可以使用神话般的函数 nl2br() 将换行符转换为 HTML
字符。

$data = 'Testing\r\nThis\r\nagain!\r\n';
echo nl2br($data);

这导致:

Testing
This
again!
于 2013-09-13T00:27:18.733 回答
1

我相信你正在寻找的是

nl2br($string);

这会将退货转换为<br>标签

我还将给你这个脚本,它在过去 nl2br 不适用时对我来说效果很好。

$remove = array("\r\n", "\n", "\r", "chr(13)",  "\t", "\0", "\x0B");
$string = str_replace($order, "<br />", $string);
于 2013-09-13T00:26:54.497 回答
0

它应该是:

<?php

addslashes( strip_tags( nl2br( $data ) ) );

?>

addslashes :将转义引号以防止 sql 注入

strip_tags :将删除任何 html 标签(如果有)

nl2br :将换行符转换为<br />

于 2013-09-13T00:32:15.097 回答