PHPプログラミング

レシピ

文字列

文字列からHTMLタグやPHPタグを除去する

strip_tags関数を使って、文字列に含まれるHTMLタグやPHPタグ(開始タグ〜終了タグ)を削除する方法について解説します。

この記事のポイント

  • 文字列に含まれるHTMLタグやPHPタグを取り除く
  • 取り除きたくないHTMLを指定することもできる
  • HTMLのコメントアウト、PHPタグは取り除かない指定はできない

HTMLタグやPHPタグを取り除く

strip_tags関数を使うと、文字列に含まれるHTMLタグやPHPタグを取り除くことができます。

コード例

$str = "<p><?php var_dump('string'); ?>テスト<br>テキスト</p>";

echo strip_tags( $str, '<h1><br>');

出力例

テスト
テキスト

上記のコードでは文字列に含むp要素<php? 〜 ?>(PHPコード)を取り除いています。
br要素は取り除かれていませんが、このように2つ目のパラメータで取り除きたくないHTML要素(JavaScriptのscript要素も含む)を指定することもできます。
また、HTMLタグにはh1要素p要素のように「<p></p>」のように開始タグと終了タグがセットで使われるものと、「<br>」のように1つしかないタグがありますが、いずれも同じ記述で指定できます。

ただし、上記の文字列のようにPHPの開始タグ&終了タグが含まれている場合は一律で取り除いてしまう点に注意してください。
PHPのタグについては2つ目のパラメータで指定をしても取り除かない設定にすることはできません。

また、2つ目のパラメータでは複数のHTML要素を指定することもできます。

コード例

strip_tags($str, '<h1><p><br><script>');

表示には直接影響はありませんが、HTMLのコメントアウトも取り除くことができます。
しかしこちらもPHPタグと同様に取り除かないタグとして指定することはできません。

コード例

$str = "<h1>HTMLを取り除く</h1><!-- コメントアウト --><p>テストテキスト</p>";

echo strip_tags($str);

出力例

HTMLを取り除くテストテキスト

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。