メールフォームからPOSTされたデータ
<?php echo( htmlspecialchars($_POST["text"])); ?>
こうすると HTMLは削除されますが、これと一緒に改行も削除されます。
改行だけは残したい!でも他のHTMLは削除したい場合はどうすればいいですか??
htmlspecialcharsを使って削除するのでいいなら、ループを使えばいかがですか。
使っているOSの改行コードが\nだとして、
$line = explode("\n",$_POST['text']);
$txt = "";
foreach ($line as $k=>$v) {
$txt .= htmlspecialchars($v)."\n";
}
echo $txt;
URLはダミーです
strtokで分割するサンプルです。
<?php $outtxt = ''; $stok = strtok($_POST['text'], "\n"); while ($tok != FALSE) { $outtxt .= htmlspecialchars($tok) ."\n"; $tok = strtok("\n"); } echo $outtxt; ?>
参考:strtok
参考になります!ありがとうございます
htmlspecialcharsは改行は削除しませんので
単純に改行をbrタグに変換してあげればいいんじゃないでしょうか
ですので
<?php echo nl2br(htmlspecialchars($_POST['text'])); ?>
ではどうでしょう
なるほど、その手もありましたね。ありがとうございます。
なるほど~、foreachを使えばいいのですね!参考になりました!
他にもやり方があれば参考にさせていただきたいので、引き続き回答を募集したいと思います!