nl2br在html标签之间添加br

时间:2012-07-06 17:24:06

标签: php

我有一个PHP webmail脚本,我今天收到来自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>

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

2 个答案:

答案 0 :(得分:1)

我个人认为在邮件中接受html是不好的,你应该删除任何HTML,为什么?

因为如果你接受html tobe渲染。例如:不使用来自未知来源的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的内容。

答案 1 :(得分:0)

您可以将$ content更改为

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

或者你可以使用

echo $content;