1

我有一个Textarea,里面有这个:

Test can't talk<br />
Test

当我将它发送到我的预览页面时,我使用它:

$Comments = htmlspecialchars("$_POST[CustComments]", ENT_QUOTES);
$Comments = str_replace("\n","<br />", $Comments);

然后它在预览页面上显示:

Test can't talk<br />
Test

当我回去编辑它时,在编辑页面代码中我有这个。

$Comments = str_replace("<br />","\n", $_POST['CustComments']);
$Comments = htmlspecialchars($Comments, ENT_QUOTES);

但它表明了这一点:

Test can't talk

Test

这个额外的休息来自哪里,我该如何摆脱它?


更新: 根据编辑页面上的建议,我有这个。

$Comments = htmlspecialchars($_POST['CustComments'], ENT_QUOTES);

这表明了这一点:

Test can't talk
<br />Test

这额外的钱又是<br />从哪里来的?如果我使用strreplace它会显示这样

Test can't talk

Test

只使用这个:

$Comments = nl2br($_POST['CustComments']);

它显示了这一点:

Test can't talk<br />
<br />Test

再次添加随机<br />数。

4

2 回答 2

1

在视图页面上需要使用这个:

$Comments = htmlspecialchars("$_POST[CustComments]", ENT_QUOTES);
$Comments = str_replace("\r\n","<br />",$Comments);

在编辑页面上使用这个:

$Comments = str_replace("<br />","\n",$_POST['CustComments'])

在提交页面:

function keepSafe($value) {
    if (get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }
    if (!is_numeric($value)) {
        $value = "'" . mysql_real_escape_string($value) . "'";
    }
    return $value;
}
$Comments = keepSafe($_POST['CustComments']);

奇迹般有效。

于 2012-12-05T15:46:25.357 回答
0

为什么要使用 str_replace()?试试这个:

$Comments = nl2br($Comments);
于 2012-12-05T14:16:26.190 回答