htmlentities
およびhtmlspecialchars
HTML出力を生成するために使用されます それはブラウザに送信されます。
プリペアドステートメントは、クエリを生成/データベースエンジンに送信するために使用されます 。
どちらもデータのエスケープを許可します。ただし、同じ使用法ではエスケープされません。
つまり、プリペアドステートメント(SQLクエリの場合) htmlspecialchars
の適切な使用を妨げないでください / htmlentities
(HTML生成用)
strip_tags
について :文字列からタグを削除します。ここで、htmlspecialchars
それらをHTMLエンティティに変換します。
これら2つの関数は同じことをしません。ニーズや入手したいものに応じて、どちらを使用するかを選択する必要があります。
たとえば、次のコードでは次のようになります。
$str = 'this is a <strong>test</strong>';
var_dump(strip_tags($str));
var_dump(htmlspecialchars($str));
この種の出力が得られます:
string 'this is a test' (length=14)
string 'this is a <strong>test</strong>' (length=43)
最初のケースでは、タグはありません。 2番目に、適切にエスケープされたもの。
そして、HTML出力で:
$str = 'this is a <strong>test</strong>';
echo strip_tags($str);
echo '<br />';
echo htmlspecialchars($str);
次のようになります:
this is a test
this is a <strong>test</strong>
どれにしますか? それ 重要な質問です;-)