PHPのhtmlspecialcharsを使いつつ改行する
改行サンプル1
改行サンプル2
改行サンプル3
改行サンプル2
改行サンプル3
上の表示は、下のコードによって表示されているの
改行サンプル1<br>改行サンプル2<br>改行サンプル3<br>
これが掲示板とかのコメント表示だとしたら、「クロスサイトスクリプティング対策」のために「htmlspecialchars」関数でHTML タグを使えなくしてから、echoとかで出力した方がいいんだ。
でも、下のように「htmlspecialchars」関数を使うと、改行が<br>と表示されてしまうの。 <br>だけは改行として扱ってほしいよね。
<?php
$kaigyou_com = '改行サンプル1<br>改行サンプル2<br>改行サンプル3<br>';
$kaigyou_com = htmlspecialchars($kaigyou_com, ENT_QUOTES, 'UTF-8'); echo $kaigyou_com
?>
【実行結果】
改行サンプル1<br>改行サンプル2<br>改行サンプル3<br>
だからね、「str_replace」関数で、一旦、<br>を「改行するよ」の文字列に置き換えてから、「htmlspecialchars」関数を通して。。。 その後に、また「str_replace」関数で、「改行するよ」を<br>に戻すんだ。
<?php
$kaigyou_com = '改行サンプル1<br>改行サンプル2<br>改行サンプル3<br>';
$kaigyou_com = str_replace('<br>','改行するよ', $kaigyou_com);
$kaigyou_com = htmlspecialchars($kaigyou_com, ENT_QUOTES, 'UTF-8');
$kaigyou_com = str_replace('改行するよ','<br>', $kaigyou_com);
echo $kaigyou_com
?>
【実行結果】
改行サンプル1
改行サンプル2
改行サンプル3
改行サンプル2
改行サンプル3
今日のいーちゃん、なんか頭よさそうに見えるね
お名前