0

我有一个 PHP 网络邮件脚本,我今天收到了来自 gmail 的消息,如下所示:

$content='
<p>This is just example for MessageContent</
p>Test...<span>Test</span>Test..<span
>Test</span>';

我怎样才能打印它nl2br

如果我使用echo nl2br($content);,我会得到以下结果:

<br />
<p>This is just example for MessageContent</<br />
p>Test...<span>Test</span>Test..<span<br />
>Test</span>

那么我该如何解决这个问题呢?

4

2 回答 2

1

我个人认为在消息中接受 html 是不好的,你应该去掉任何 html,为什么?

因为如果您接受要呈现的 html。例如:不使用htmlentities($content)来自未知来源的恶意软件可能会添加 javascript 和XSS攻击您,或者添加一个狡猾的链接和CSRF攻击您,甚至只是一个 1px 的图像并获取您的 IP。

但是,如果您接受风险,您可以按原样呈现消息。

<?php 
$content='
<p>This is just example for MessageContent</
p>Test...<span>Test</span>Test..<span
>Test</span>';

//Or at least sanitise abit - Remove all tags except p's an a's
$content = strip_tags($content,'<p><a>');
?>

nl2br 适用于您希望其中没有 html 的内容。

于 2012-07-06T18:00:50.320 回答
0

您可以将 $content 更改为

$content='
<p>This is just example for MessageContent</p>
Test...<span>Test</span>Test..
<span>Test</span>';

或者你可以使用

echo $content;
于 2012-07-06T22:19:23.950 回答