(PHP 4, PHP 5)
strip_tags — 文字列から HTML および PHP タグを取り除く
$str
[, string $allowable_tags
] )
この関数は、指定した文字列 (str
)
から全ての NUL バイトと HTML および PHP タグを取り除きます。
この関数は、 fgetss() 関数と同じタグ除去アルゴリズムを使用します。
str
入力文字列。
allowable_tags
オプションの2番目の引数により、取り除かないタグを指定できます。
注意:
HTML コメントや PHP タグも削除されるようになりました。この機能はハードコードされており、
allowable_tags
で変更することはできません。
注意:
このパラメータには空白文字を含めてはいけません。 strip_tags() はタグの大文字小文字を区別せず、 < から始まって最初に空白文字か > があらわれるまでをタグとみなします。 つまり、strip_tags("<br/>", "<br>") は空文字列を返すということです。
タグを除去した文字列を返します。
バージョン | 説明 |
---|---|
5.0.0 | strip_tags() がバイナリセーフとなりました。 |
4.3.0 | HTML のコメントも除去するようになりました。 |
例1 strip_tags() の例
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// <p> と <a> は許可します
echo strip_tags($text, '<p><a>');
?>
上の例の出力は以下となります。
Test paragraph. Other text <p>Test paragraph.</p> <a href="#fragment">Other text</a>
strip_tags() は HTML の検証を行わないため、 不完全または壊れたタグにより予想以上に多くのテキスト/データが削除される可能性があります。
この関数は、allowable_tags
で許可した全てのタグの属性を修正しません。
これには、style
および onmouseover属性が含まれており、
悪意のあるユーザーが他のユーザーに見せるようなテキストを投稿する際に危険な行為を行う可能性があります。
注意:
HTML の中にあるタグの中で 1023 バイトより長い名前のものがあれば、 たとえ
allowable_tags
パラメータに指定していたとしても無効なタグと見なされます。