web-dev-qa-db-ja.com

Wp_strip_all_tagsとwp_filter_nohtml_ksesの違いは何ですか?

下記の記事から引用しました。

wp_strip_all_tags()

「スクリプトとスタイルを含むすべてのHTMLタグを正しく削除します。」

wp_filter_nohtml_kses()

「コンテンツ内のすべてのHTMLを削除します。」

参照:

これらの関数 出現 はまったく同じ目的にかなう。それらはどう違いますか?

7
henrywright

Wp_strip_all_tags()関数は、scriptとstyleタグの内容を含むすべてのHTMLを削除します。

PHP strip_tags()関数は、スクリプトおよびスタイルタグの内容を削除しないことを除いて、ほぼ同じことを行います。 WPのwp_strip_all_tags()関数は、スクリプトとスタイルを手動で削除した後にこれを使用します。

Wp_filter_nohtml_kses()関数はksesを使用してすべてのHTMLを削除します。主な違いは、HTMLの解析に使用されるエンジンです。 PHPのstrip_tags()は、壊れたHTMLや意図的に改ざんされたHTMLを特にうまく処理しません。HTMLの検証を実行しないからです。 ksesエンジンは不正なHTMLをより良い方法で処理しようとしますが、完全なHTMLパーサーでもありません。また遅いです。

Wp_strip_all_tags()関数が一般的に推奨されています。ほとんどの場合、これで十分です。 ksesバージョンは完全を期すためにほとんど含まれていますが、特に形式の悪いHTMLを扱っている場合には役に立つかもしれません。

10
Otto