PHP
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

関数処理> <filter_var_array
Last updated: Fri, 30 Jan 2009

view this page in

filter_var

(PHP 5 >= 5.2.0)

filter_var指定したフィルタでデータをフィルタリングする

説明

mixed filter_var ( mixed $variable [, int $filter [, mixed $options ]] )

パラメータ

variable

フィルタリングする値。

filter

使用するフィルタの ID。 デフォルトは FILTER_SANITIZE_STRING です。

options

オプションあるいはフラグの論理和の連想配列。 オプションを指定可能なフィルタの場合、この配列の "flags" フィールドにフラグを指定します。 "callback" フィルタの場合は、callback 型を渡さなければなりません。

返り値

フィルタリングされたデータ、あるいは処理に失敗した場合に FALSE を返します。

例1 filter_var() の例

<?php
var_dump
(filter_var('bob@example.com'FILTER_VALIDATE_EMAIL));
var_dump(filter_var('example.com'FILTER_VALIDATE_URLFILTER_FLAG_SCHEME_REQUIRED));
?>

上の例の出力は以下となります。

string(15) "bob@example.com"
bool(false)

参考

  • filter_var_array() - 複数の変数を受け取り、オプションでそれらをフィルタリングする
  • filter_input() - 指定した名前の変数を外部から受け取り、オプションでそれをフィルタリングする
  • filter_input_array() - 外部から変数を受け取り、オプションでそれらをフィルタリングする
  • callback 型に関する情報



関数処理> <filter_var_array
Last updated: Fri, 30 Jan 2009
 
add a note add a note User Contributed Notes
filter_var
erick dot papa at gmail dot com
19-Jan-2009 09:05
Some notes on usage:

http://sn.im/php_filter
dyer85 at gmail dot com
03-Nov-2008 12:00
Note that when using FILTER_VALIDATE_INT along with the FILTER_FLAG_ALLOW_HEX flag, the string "2f", for example, is not validated successfully, because you must use the "0x" prefix, otherwise, it treats the data as base 10.

The range options are also smart enough to recognize when the boundaries are exceeded in different bases.

Here's an example:

<?php

$foo
= '256';
$bar = '0x100';
var_dump(validate_int($foo)); // false, too large
var_dump(validate_int($bar)); // false, too large

function validate_int($input)
{
  return
filter_var(
   
$input,
   
FILTER_VALIDATE_INT,

   
// We must pass an associative array
    // to include the range check options.
   
array(
     
'flags'   => FILTER_FLAG_ALLOW_HEX,
     
'options' => array('min_range' => 1, 'max_range' => 0xff)
    )
  );
}

?>
visseraj at gmail dot com
28-Aug-2008 08:31
Here are the other possible flags that you can use:
http://us3.php.net/manual/hu/ref.filter.php
dale dot liszka at gmail dot com
09-Jul-2008 08:15
Here is how to use multiple flags (for those who learn better by example, like me):

<?php
echo "|asdf".chr(9).chr(128)."_123|";
echo
"\n";
// "bitwise conjunction" means logic OR / bitwise |
echo filter_var("|asdf".chr(9).chr(128)."_123\n|" ,FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);

/*
Results:
|asdf    �_123|
|asdf_123|
*/
?>
dale dot liszka at gmail dot com
09-Jul-2008 07:54
Using the FILTER_CALLBACK requires an array to be passed as the options:

<?php
function toDash($x){
   return
str_replace("_","-",$x);
}

echo
filter_var("asdf_123",FILTER_CALLBACK,array("options"=>"toDash"));
// returns 'asdf-123'
?>
John
26-Jul-2007 10:35
I managed to get this to work with PHP 5.1.6 on CentOS 5 with minor difficulty.

1) Download the PECL filter package
2) Extract the tarball
3) phpize the directory
4) ./configure
5) make
6) filter-0.11.0/logical_filters.c:25:31: error: ext/pcre/php_pcre.h: No such file or directory
7) find / -name php_pcre.h
8) Make sure php-devel is installed
9) Edit filter-0.11.0/logical_filters.c and replace "ext/pcre/php_pcre.h" with the absolute path of php_pcre.h
10) make
11) make install
12) add "extension=filter.so" to php.ini
13) Restart Apache

関数処理> <filter_var_array
Last updated: Fri, 30 Jan 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites