web-dev-qa-db-ja.com

Esc_ *関数の違いは何ですか?

私は プロのWordPressを読んだ そしてそれは言う:

esc_html関数は、HTMLを含むデータを削除するために使用されます。この関数は特殊文字をそれらのHTMLエンティティにエンコードします

HTML属性をエスケープするためにesc_attr関数が使用されています

esc_url。この関数は不正な文字のためにURLをスクラブするために使われるべきです。 hrefは技術的にはHTML属性ですが

これらの違いは何ですか?

持っていれば

<script>alert('hello world!');</script>this is some content

すべての< >&lt; &gt;に変換しますか? URLは%xxxのようなものになりますか?

8
Jiew Meng

esc_htmlesc_attrはほぼ同じですが、唯一の違いは、出力が異なる名前のフィルター(それぞれesc_htmlattribute_escape)を通過することです。

esc_urlは、より複雑で具体的です。URLや許可されたプロトコルに含めることができない文字(2番目の引数として渡すことができるリスト)を扱います。それが存在しない場合(そしてリンクが相対的でない場合)も、http://プロトコルで入力を追加します。

8
Rarst