我有一个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>
那我该如何解决这个问题?
答案 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;