PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのFILTER_SANITIZE_SPECIAL_CHARS定数とは?特殊文字をHTMLエスケープする方法

PHPのFILTER_SANITIZE_SPECIAL_CHARSは、特殊文字をHTMLエンティティ形式にエスケープするためのサニタイズフィルター定数です。filter_var()関数と組み合わせて使用することで、「"」「'」「<」「>」「&」といった特殊文字や、ASCII値が32未満の制御文字を安全な形式へ変換できます。

利用可能なフラグ

  • FILTER_FLAG_STRIP_LOW − ASCII値が32未満の文字を削除します。

  • FILTER_FLAG_STRIP_HIGH − ASCII値が32より大きい文字を削除します。

  • FILTER_FLAG_ENCODE_HIGH − ASCII値が32より大きい文字をエンコードします。

戻り値

FILTER_SANITIZE_SPECIAL_CHARSフィルターは、処理後の文字列を返します。入力値に含まれる特殊文字がHTMLエンティティに変換された、新しい文字列が得られます。

使用例

<?php
    $var = "Favorite Sports is Football & Cricket?";
    var_dump(filter_var($var,FILTER_SANITIZE_SPECIAL_CHARS));
?>

出力結果

上記のコードを実行すると、次のような出力が得られます。

string(43) "Favorite Sports is Football &amp; Cricket?"

補足:セキュリティ対策での活用

このフィルターは、掲示板やお問い合わせフォームなど、ユーザー入力をそのままHTMLに出力する場面で、クロスサイトスクリプティング(XSS)対策として活用できます。用途に応じてhtmlspecialchars()関数との使い分けも検討するとよいでしょう。

  1. PHPのstrtoupper()関数とは?使い方とサンプルコードを解説

    strtoupper()関数は、PHPの組み込み関数の一つで、文字列内のすべての英字を大文字に変換するために使用されます。引数として渡された文字列に含まれる小文字がすべて大文字に置き換えられ、変換後の新しい文字列が返されます。元の文字列自体は変更されません。基本構文strtoupper(str)パラメータstr − 大文字に変換したい文字列を指定します。このパラメータは必須です。戻り値strtoupper()関数は、すべての英字が大文字に変換された文字列を返します。なお、数字や記号などアルファベット以外の文字はそのまま維持されます。使用例以下は、strtoupper()関数を使って

  2. PHPのstrtolower()関数とは?文字列をすべて小文字に変換する方法

    PHPのstrtolower()関数は、文字列に含まれるすべての英字を小文字に変換するための組み込み関数です。大文字が含まれる文字列を渡すと、すべての文字が小文字に変換された新しい文字列を返します。ユーザー入力の正規化や、大文字・小文字を区別しない比較処理などでよく利用されます。構文strtolower(str)パラメータstr − 小文字に変換したい対象の文字列を指定します。このパラメータは必須です。戻り値strtolower()関数は、引数として渡された文字列のすべての英字を小文字に変換した文字列を返します。数字や記号など、アルファベット以外の文字はそのまま維持されます。使用例以下は、st