ホームページ >バックエンド開発 >PHPチュートリアル >phpのhtmlspecialchars()関数とstrip_tags関数の違い

phpのhtmlspecialchars()関数とstrip_tags関数の違い

怪我咯
怪我咯オリジナル
2017-06-08 14:15:281970ブラウズ

php htmlspecialchars() 関数とstrip_tags 関数はどちらも HTML コードをフォーマットするものだと考えていますが、htmlentities と htmlspecialchars の関数は本当に同じなのでしょうか? 答えは「ノー」です。そうでない場合、そのような関数は存在しません。この記事では、php htmlspecialchars() とstrip_tags関数の違いについて説明します

まず、htmlspecialchars関数とstrip_tags関数の使用例を見てみましょう:

<?php
$str="<a href=&#39;http://www.php.cn&#39;>php中文网</a>";
echo htmlspecialchars($str);
echo "<br><br>";
echo strip_tags($str);
?>

ブラウザでコードを実行した出力結果:

phpのhtmlspecialchars()関数とstrip_tags関数の違い

ページのソースコードを表示すると、結果は次のようになります:

<a href=&#39;http://www.php.cn&#39;>php中文网&#39;"</a><br/><br/>php中文网&#39;"

結果から、htmlspecialchars() とstrip_tagsの違いは次のとおりであることがわかります:

違い1:

strip_tags関数が使用されているhtmlspecialchars は HTML タグを削除しますが、htmlspecialchars は HTML タグを削除しません。そのため、この 2 つの最大の違いは、1 つは HTML タグを削除すること、もう 1 つは HTML タグを別のタグに変換することです。文字。

違い 2:

HTML タグから削除する必要がある文字列内のタグが元々間違っている場合 (たとえば、大なり記号が欠落している場合)、strip_tags 関数を使用するとエラーが返されますが、htmlspecialchars 関数を使用するとエラーが返されます。エラーはなく、 が HTML エンティティになった後でも変換されます。

違い 3:

XSS 攻撃を防ぐ場合、一般に htmlspecialchars 関数を使用することをお勧めします。これは、strip_tags は HTML タグを削除できますが、" または ' は削除しないためです。したがって、strip_tags を使用する場合でも、依然としてhtmlspecialchars 関数を使用して、Drop " または '

をフィルタリングします。フォーム送信またはユーザー メッセージ ボードで、データの元の出力をブラウザに送信したい場合は、strip_tags 関数の代わりに htmlspecialchars 関数を使用してください。

【おすすめ関連記事】

phpのhtmlspecialchars、strip_tags、addlashes関数の簡単な紹介

php 文字列タグを削除するstrip_tags()関数の例を詳しく解説

以上がphpのhtmlspecialchars()関数とstrip_tags関数の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。