PHPプログラミング

最終更新日:
公開日:

レシピ

文字列

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

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

この記事のポイント

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

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

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

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要素を指定することもできます。

PHP コード例

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

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

PHP コード例

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

echo strip_tags($str);

出力例

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