人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでメール 改行は残しつつ、でもその他のHTMLは削除したい!

メールフォームからPOSTされたデータ
<?php echo( htmlspecialchars($_POST["text"])); ?>
こうすると HTMLは削除されますが、これと一緒に改行も削除されます。
改行だけは残したい!でも他のHTMLは削除したい場合はどうすればいいですか??

●質問者: goodbabies
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:HTML PHP データ メール
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● cactus-tree
●27ポイント

htmlspecialcharsを使って削除するのでいいなら、ループを使えばいかがですか。

使っているOSの改行コードが\nだとして、

$line = explode("\n",$_POST['text']);

$txt = "";

foreach ($line as $k=>$v) {

$txt .= htmlspecialchars($v)."\n";

}

echo $txt;



URLはダミーです

http://q.hatena.ne.jp/

◎質問者からの返答

なるほど?、foreachを使えばいいのですね!参考になりました!

他にもやり方があれば参考にさせていただきたいので、引き続き回答を募集したいと思います!


2 ● tasklight
●27ポイント

strtokで分割するサンプルです。

<?php
$outtxt = '';
$stok = strtok($_POST['text'], "\n");
while ($tok != FALSE) {
 $outtxt .= htmlspecialchars($tok) ."\n";
 $tok = strtok("\n");
}
echo $outtxt;
?>

参考:strtok

◎質問者からの返答

参考になります!ありがとうございます


3 ● quina
●27ポイント

htmlspecialcharsは改行は削除しませんので

単純に改行をbrタグに変換してあげればいいんじゃないでしょうか

ですので


<?php echo nl2br(htmlspecialchars($_POST['text'])); ?>


ではどうでしょう

◎質問者からの返答

なるほど、その手もありましたね。ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ