質問: 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のようなものになりますか?
回答: esc_htmlとesc_attrはほぼ同じですが、唯一の違いは、出力が異なる名前のフィルター(それぞれesc_htmlとattribute_escape)を通過することです。esc_urlは、より複雑で具体的です。urlや許可されたプロトコルに含めることができない文字(2番目の引数として渡すことができるリスト)を扱います。それが存在しない場合(そしてリンクが相対的でない場合)も、http://プロトコルで入力を追加します。