0

今日gmailから次のようなメッセージを受け取ったPHP Webメールスクリプトがあります。

$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を使用したり、1 ピクセルの画像だけを使用して 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 に答える