フィルタ関数

導入

この拡張モジュールは、 ユーザ入力などのセキュアでないデータの検証およびフィルタリングを行います。

現在存在するのは、以下のフィルタです。各定数の振る舞いについての説明は フィルタ定数 の節を参照ください。

存在するフィルタ
ID 名前 オプション フラグ 説明
FILTER_VALIDATE_INT "int" min_range , max_range FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX 値が整数であるかどうか、オプションで指定した範囲内にあるかどうかを検証します。
FILTER_VALIDATE_BOOLEAN "boolean"   FILTER_NULL_ON_FAILURE

"1"、"true"、"on" および "yes" の場合に TRUE、 それ以外の場合に FALSE を返します。

FILTER_NULL_ON_FAILURE が設定されている場合は、 FALSE が返されるのは "0"、"false"、"off"、"no" および "" の場合のみとなります。 boolean 以外の値については NULL を返します。

FILTER_VALIDATE_FLOAT "float" decimal FILTER_FLAG_ALLOW_THOUSAND 値が float であるかどうかを検証します。
FILTER_VALIDATE_REGEXP "validate_regexp" regexp   値が、Perl 互換の 正規表現 regexp に一致するかどうかを検証します。
FILTER_VALIDATE_URL "validate_url"   FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED 値が URL 形式であるかどうか、 オプションで指定したコンポーネントが含まれているかどうかを検証します。
FILTER_VALIDATE_EMAIL "validate_email"     値が e-mail 形式であるかどうかを検証します。
FILTER_VALIDATE_IP "validate_ip"   FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE 値が IP アドレスであるかどうかを検証します。 オプションで IPv4 あるいは IPv6 のみの指定、 プライベートアドレスや予約済みアドレスではないことの指定もできます。
FILTER_SANITIZE_STRING "string"   FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP タグを取り除きます。オプションで、 特殊文字を取り除いたりエンコードしたりします。
FILTER_SANITIZE_STRIPPED "stripped"     "string" フィルタのエイリアス。
FILTER_SANITIZE_ENCODED "encoded"   FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH 文字列を URL エンコードします。オプションで、 特殊文字を取り除いたりエンコードしたりします。
FILTER_SANITIZE_SPECIAL_CHARS "special_chars"   FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_HIGH '"<>& および ASCII 値が 32 未満の文字を HTML エスケープします。オプションで、 特殊文字を取り除いたりエンコードしたりします。
FILTER_UNSAFE_RAW "unsafe_raw"   FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP 何もせず、オプションで特殊文字を取り除いたりエンコードしたりします。
FILTER_SANITIZE_EMAIL "email"     英字、数字および !#$%&'*+-/=?^_`{|}~@.[] 以外のすべての文字を取り除きます。
FILTER_SANITIZE_URL "url"     英字、数字および $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&= 以外のすべての文字を取り除きます。
FILTER_SANITIZE_NUMBER_INT "number_int"     数字、プラス記号、マイナス記号 以外のすべての文字を取り除きます。
FILTER_SANITIZE_NUMBER_FLOAT "number_float"   FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC 数字、+- および オプションで .,eE 以外のすべての文字を取り除きます。
FILTER_SANITIZE_MAGIC_QUOTES "magic_quotes"     addslashes() を適用します。
FILTER_CALLBACK "callback" callback 関数あるいはメソッド   ユーザ定義の関数をコールしてデータをフィルタリングします。

要件

外部ライブラリを必要としません。

インストール手順

簡単なインストールメモ。コンソールで、ただ単に

$ pecl install filter
  
とタイプします。

実行時設定

php.ini の設定により動作が変化します。

フィルタ設定オプション
名前 デフォルト 変更の可否 変更履歴
filter.default "unsafe_raw" PHP_INI_PERDIR filter <= 0.9.4 では PHP_INI_ALL。PHP 5.2.0 以降で使用可能です。
filter.default_flags NULL PHP_INI_PERDIR filter <= 0.9.4 では PHP_INI_ALL。PHP 5.2.0 以降で使用可能です。
PHP_INI_* 定数の詳細および定義については php.ini ディレクティブ を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

filter.default string

このフィルタで $_GET, $_POST, $_COOKIE および $_REQUEST のすべてのデータをフィルタリングします。 もとのデータへは filter_input() でアクセスが可能です。

デフォルトで使用するフィルタの名前を指定することができます。 既存のフィルタの一覧を参照し、フィルタ名を指定してください。

filter.default_flags integer

デフォルトのフラグ。

リソース型

リソース型は定義されていません。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

INPUT_POST (integer)
POST 変数。
INPUT_GET (integer)
GET 変数。
INPUT_COOKIE (integer)
COOKIE 変数。
INPUT_ENV (integer)
ENV 変数。
INPUT_SERVER (integer)
SERVER 変数。
INPUT_SESSION (integer)
SESSION 変数 (まだ実装されていません)。
INPUT_REQUEST (integer)
REQUEST 変数 (まだ実装されていません)。
FILTER_FLAG_NONE (integer)
フィルタしない。
FILTER_REQUIRE_SCALAR (integer)
入力値としてスカラーを要求するために使用するフラグ。
FILTER_REQUIRE_ARRAY (integer)
入力として配列を要求します。
FILTER_FORCE_ARRAY (integer)
常に配列として返します。
FILTER_NULL_ON_FAILURE (integer)
失敗した場合に FALSE ではなく NULL を使用します。
FILTER_VALIDATE_INT (integer)
"int" フィルタの ID。
FILTER_VALIDATE_BOOLEAN (integer)
"boolean" フィルタの ID。
FILTER_VALIDATE_FLOAT (integer)
"float" フィルタの ID。
FILTER_VALIDATE_REGEXP (integer)
"validate_regexp" フィルタの ID。
FILTER_VALIDATE_URL (integer)
"validate_url" フィルタの ID。
FILTER_VALIDATE_EMAIL (integer)
"validate_email" フィルタの ID。
FILTER_VALIDATE_IP (integer)
"validate_ip" フィルタの ID。
FILTER_DEFAULT (integer)
デフォルト ("string") フィルタの ID。
FILTER_UNSAFE_RAW (integer)
"unsafe_raw" フィルタの ID。
FILTER_SANITIZE_STRING (integer)
"string" フィルタの ID。
FILTER_SANITIZE_STRIPPED (integer)
"stripped" フィルタの ID。
FILTER_SANITIZE_ENCODED (integer)
"encoded" フィルタの ID。
FILTER_SANITIZE_SPECIAL_CHARS (integer)
"special_chars" フィルタの ID。
FILTER_SANITIZE_EMAIL (integer)
"email" フィルタの ID。
FILTER_SANITIZE_URL (integer)
"url" フィルタの ID。
FILTER_SANITIZE_NUMBER_INT (integer)
"number_int" フィルタの ID。
FILTER_SANITIZE_NUMBER_FLOAT (integer)
"number_float" フィルタの ID。
FILTER_SANITIZE_MAGIC_QUOTES (integer)
"magic_quotes" フィルタの ID。
FILTER_CALLBACK (integer)
"callback" フィルタの ID。
FILTER_FLAG_ALLOW_OCTAL (integer)
"int" フィルタで 8 進表記 (0[0-7]+) を許可します。
FILTER_FLAG_ALLOW_HEX (integer)
"int" フィルタで 16 進表記 (0x[0-9a-fA-F]+) を許可します。
FILTER_FLAG_STRIP_LOW (integer)
ASCII 値が 32 未満の文字を取り除きます。
FILTER_FLAG_STRIP_HIGH (integer)
ASCII 値が 127 より大きい文字を取り除きます。
FILTER_FLAG_ENCODE_LOW (integer)
ASCII 値が 32 未満の文字をエンコードします。
FILTER_FLAG_ENCODE_HIGH (integer)
ASCII 値が 127 より大きい文字をエンコードします。
FILTER_FLAG_ENCODE_AMP (integer)
& をエンコードします。
FILTER_FLAG_NO_ENCODE_QUOTES (integer)
' および " をエンコードしません。
FILTER_FLAG_EMPTY_STRING_NULL (integer)
(現在は使用されていません)
FILTER_FLAG_ALLOW_FRACTION (integer)
"number_float" フィルタで小数を許可します。
FILTER_FLAG_ALLOW_THOUSAND (integer)
"number_float" フィルタで桁区切り文字 (,) を許可します。
FILTER_FLAG_ALLOW_SCIENTIFIC (integer)
"number_float" フィルタで科学記法 (e, E) を許可します。
FILTER_FLAG_SCHEME_REQUIRED (integer)
"validate_url" フィルタでスキームを必須とします。
FILTER_FLAG_HOST_REQUIRED (integer)
"validate_url" フィルタでホスト名を必須とします。
FILTER_FLAG_PATH_REQUIRED (integer)
"validate_url" フィルタでパスを必須とします。
FILTER_FLAG_QUERY_REQUIRED (integer)
"validate_url" フィルタでクエリ文字列を必須とします。
FILTER_FLAG_IPV4 (integer)
"validate_ip" フィルタで IPv4 アドレスのみを許可します。
FILTER_FLAG_IPV6 (integer)
"validate_ip" フィルタで IPv6 アドレスのみを許可します。
FILTER_FLAG_NO_RES_RANGE (integer)
"validate_ip" フィルタで予約済みアドレスを拒否します。
FILTER_FLAG_NO_PRIV_RANGE (integer)
"validate_ip" フィルタでプライベートアドレスを拒否します。

PHPマニュアル検索

ナビゲーション

関数リスト

同一レベル項目

MaxDB PHP 拡張モジュール
Mhash 関数
GeoIP 関数
Sybase 関数
ストリーム関数
イメージ関数(image)
GNU Recode 関数
Ovrimos SQL 関数
XSL 関数
正規表現関数(Perl 互換)
Fileinfo 関数
ディレクトリ関数
Cyrus IMAP 管理関数
ID3 関数
文字型 (ctype) 関数
MySQL 改良版拡張サポート(mysqli)
SimpleXML関数
PostgreSQL 関数 (PDO_PGSQL)
DBM 関数 [非推奨]
XMLWriter 関数
Secure Shell2 関数
クラック関数 (Crack)
XSLT 関数
Tokenizer 関数
IMAP、POP3 および NNTP 関数
DB++ 関数
OpenSSL 関数
filePro 関数
エラー処理およびログ記録関数
ソケット関数
gnupg 関数
SNMP 関数
ネットワーク関数
Informix 関数
配列関数(array)
runkit 関数
XML-RPC 関数
Memcache 関数
Microsoft SQL Server および Sybase 関数 (PDO_DBLIB)
Net_Gopher
W32api 関数
関数処理関数(funchand)
CCVS API 関数 [非推奨]
vpopmail 関数
Firebird/Interbase 関数 (PDO_FIREBIRD)
Subversion 関数
DOM 関数
Ncurses 端末画面制御関数
Oracle 関数
IRC Gateway 関数
Advanced PHP Debugger (APD)
enchant 関数
その他の関数(Misc)
Classkit 関数
PHP / Java の連携
出力制御関数(output control)
PostgreSQL 関数
Pspell 関数
oggvorbis
Apache専用の関数
BBCode 関数
Rar 関数
POSIX 関数
XML パーサ関数
Oracle 関数 (PDO_OCI)
LDAP 関数
Bzip2 圧縮関数
マルチバイト文字列関数 (mbstring)
ダイレクト IO (DIO) 関数
ファイルシステム関数
NSAPI用関数
win32service 関数
Informix 関数 (PDO_INFORMIX)
CURL, Client URL Library 関数
Satellite CORBA クライアント拡張 [推奨されません]
Tidy 関数
セッション処理関数(session)
OpenAL 音声バインディング
Expect 関数
Haru PDF 関数
Phar アーカイブストリームおよびクラス
URL 関数
zlib 圧縮関数
IBM 関数 (PDO_IBM)
libxml 関数
共有メモリ関数(shmop)
FTP 関数
Credit Mutuel CyberMUT 関数
.NET 関数
XMLReader 関数
Unified ODBC 関数
MySQL 関数
変数操作関数(Variable Handling)
IIS 管理関数
BCMath任意精度数学関数
i18n (国際化) 関数
Zip ファイル関数
win32ps 関数
dBase 関数
Imagick 画像ライブラリ
xattr 関数
YAZ 関数
Alternative PHP Cache (APC)
統計関数
SDO XML データアクセスサービス関数
オブジェクトプロパティとメソッドコールのオーバーロード
Mohawk Software セッションハンドラ関数
フィルタ関数
RPM ヘッダ読み込み関数
メール関数(Mail)
TCP ラッパ関数(TCP Wrappers)
SAM - Simple Asynchronous Messaging: 単純な非同期メッセージング
Oracle 関数 [推奨されません]
ODBC および DB2 関数 (PDO_ODBC)
Mcrypt 暗号化関数
PHP バイトコードコンパイラ (bcompiler)
mSQL 関数
Standard PHP Library (SPL) 関数
セマフォ・共有メモリおよび IPC 関数(semaphore)
SESAM データベース関数
GMP 関数
Radius
Newt 関数
日付・時刻関数
Parsekit 関数
Verisign Payflow Pro 関数
クラス/オブジェクト関数
Paradox ファイルアクセス
Unicode 関数
JSON 関数
Swish 関数
数学関数(Math)
mnoGoSearch 関数
Firebird/InterBase 関数
xdiff 関数
オブジェクトの集約/合成関数
Forms Data Format 関数
SOAP関数
KADM5
ハッシュ関数
Lotus Notes 関数
LZF 関数
Mimetype 関数
SCA 関数
YP/NIS 関数
ファイル改変監視関数(FAM)
ClibPDF 関数 [非推奨]
Cybercash 支払関数
Aspell関数(古い拡張モジュール)
PostgreSQL セッション保存ハンドラ
PDF 関数
カレンダー関数
プリンタ関数
Exif 関数
SQLite 関数
Shockwave Flash 関数
GNU Readline
Strings(文字列関数)
Mailparse 関数
Flash 用 Ming 関数
Microsoft SQL Server 関数
DOM XML 関数
SDO 関数
Hyperwave 関数
WDDX 関数
MCAL 関数
プロセス制御関数
SDO リレーショナルデータアクセスサービス関数
Hyperwave API 関数
FriBiDi 関数
プログラム実行関数
正規表現(regex)関数 (POSIX拡張サポート)
IBM DB2、Cloudscape および Apache Derby 関数
Ingres II 関数
(dbm 型の)データベース抽象化レイヤ関数
COM と .Net (Windows)
HTTP
PDO 関数
PHP オプションと情報(info)
qtdom 関数
muscat 関数
iconv 関数
MCVE (Monetra) 支払い関数
dbx 関数
SQLite 関数 (PDO_SQLITE)
MySQL 関数 (PDO_MYSQL)
Gettext 関数
PostScript ドキュメントの作成
FrontBase 関数
PHPマニュアル@apis
| PEARマニュアル | Smartyマニュアル | PostgreSQLマニュアル |