Here are the other possible flags that you can use:
http://us3.php.net/manual/hu/ref.filter.php
filter_var
(PHP 5 >= 5.2.0, PECL filter:0.11.0)
filter_var — Filters a variable with a specified filter
说明
mixed filter_var
( mixed $variable
[, int $filter
[, mixed $options
]] )
参数
- variable
-
Value to filter.
- filter
-
ID of a filter to use. Defaults to FILTER_SANITIZE_STRING.
- options
-
Associative array of options or bitwise disjunction of flags. If filter accepts options, flags can be provided in "flags" field of array. For the "callback" filter, callback type should be passed.
返回值
Returns the filtered data, or FALSE if the filter fails.
范例
Example#1 A filter_var() example
<?php
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('example.com', FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED));
?>
上例将输出:
string(15) "bob@example.com" bool(false)
filter_var
visseraj at gmail dot com
29-Aug-2008 01:31
29-Aug-2008 01:31
dale dot liszka at gmail dot com
10-Jul-2008 01:15
10-Jul-2008 01: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
10-Jul-2008 12:54
10-Jul-2008 12: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
27-Jul-2007 03:35
27-Jul-2007 03: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
