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

PHPのFILTER_SANITIZE_STRING定数の使い方と主なフラグ一覧

FILTER_SANITIZE_STRING 定数は、文字列からタグを削除し、特殊文字をエンコードするためのサニタイズフィルターです。ユーザー入力からHTMLタグを取り除き、安全な文字列として処理したい場合に利用されます。

主なフラグ(Flags)

  • FILTER_FLAG_NO_ENCODE_QUOTES − 引用符(シングルクォート・ダブルクォート)をエンコードしません

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

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

  • FILTER_FLAG_ENCODE_LOW − ASCII値が32未満の文字をエンコードします

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

  • FILTER_FLAG_ENCODE_AMP − 「&」文字を「&」にエンコードします

戻り値

FILTER_SANITIZE_STRING 定数自体は何も返しません。実際のフィルタリング処理は、filter_var() 関数などと組み合わせて使用した際に実行され、その結果としてサニタイズ済みの文字列が返されます。

使用例

<?php
    $var = "<p>£Demo! ££</p>";
    $res = filter_var($var, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
    echo $res;
?>

出力結果

上記コードの実行結果は以下の通りです。

Demo!

この例では、FILTER_FLAG_STRIP_HIGH フラグによって ASCII値が127より大きい文字(この場合はポンド記号「£」)が削除されるため、タグと特殊記号が取り除かれた「Demo!」という文字列のみが出力されます。

注意:PHP 8.1以降での非推奨について

FILTER_SANITIZE_STRING は PHP 8.1 以降で非推奨(deprecated)となっています。新規の開発では、htmlspecialchars()strip_tags() といった代替関数の使用が推奨されています。既存コードでこの定数を使用している場合は、移行計画を検討することをおすすめします。

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

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

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

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