php filter函数库 (与变量和类型有关的扩展),可以过滤常用邮件,IP,变量数组等
?
?
?filter_list和filter_id结合
?
<?phpecho "<pre>";print_r(filter_list());echo "</pre>";foreach (filter_list() as $key => $value){echo "<br>".$key."=".$value.'='.filter_id($value);}?>0=int=2571=boolean=2582=float=2593=validate_regexp=2724=validate_url=2735=validate_email=2746=validate_ip=2757=string=5138=stripped=5139=encoded=51410=special_chars=51511=unsafe_raw=51612=email=51713=url=51814=number_int=51915=number_float=52016=magic_quotes=52117=callback=1024
?
?filter_id
?
<?php $filters = filter_list(); foreach($filters as $filter_name) { echo $filter_name .": ".filter_id($filter_name) ."<br>"; } ?> Will result in: boolean: 258 float: 259 validate_regexp: 272 validate_url: 273 validate_email: 274 validate_ip: 275 string: 513 stripped: 513 encoded: 514 special_chars: 515 unsafe_raw: 516 email: 517 url: 518 number_int: 519 number_float: 520 magic_quotes: 521 callback: 1024
?
?
filter_has_var 函数效率:
To note: filter_has_var() is a bit faster than isset()
翻译:filter_has_var函数比isset()快一点
?
Please note that the function does not check the live array, it actually checks the content received by php:
翻译:请注意,这个函数不检查包括数组,它只检查PHP接收到的内容
?
?
<?php$_GET['test'] = 1;echo filter_has_var(INPUT_GET, 'test') ? 'Yes' : 'No';?>would say "No", unless the parameter was actually in the querystring.Also, if the input var is empty, it will say Yes.?
?
?
?
验证范例1(验证邮箱):
?
<?php$email_a = 'joe@example.com';$email_b = 'bogus';if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) { echo "This (email_a) email address is considered valid.";}if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) { echo "This (email_b) email address is considered valid.";}?>
?以上程序输出:
?
This (email_a) email address is considered valid.
?
验证范例2(验证IP)
?
<?php$ip_a = '127.0.0.1';$ip_b = '42.42';if (filter_var($ip_a, FILTER_VALIDATE_IP)) { echo "This (ip_a) IP address is considered valid.";}if (filter_var($ip_b, FILTER_VALIDATE_IP)) { echo "This (ip_b) IP address is considered valid.";}?>
?以上程序输出:
?
This (ip_a) IP address is considered valid.
?
验证范例3(通过选项来过滤变量):
?
<?php$int_a = '1';$int_b = '-1';$int_c = '4';$options = array( 'options' => array( 'min_range' => 0, 'max_range' => 3, ));if (filter_var($int_a, FILTER_VALIDATE_INT, $options) !== FALSE) { echo "This (int_a) integer is considered valid (between 0 and 3).\n";}if (filter_var($int_b, FILTER_VALIDATE_INT, $options) !== FALSE) { echo "This (int_b) integer is considered valid (between 0 and 3).\n";}if (filter_var($int_c, FILTER_VALIDATE_INT, $options) !== FALSE) { echo "This (int_c) integer is considered valid (between 0 and 3).\n";}$options['options']['default'] = 1;if (($int_c = filter_var($int_c, FILTER_VALIDATE_INT, $options)) !== FALSE) { echo "This (int_c) integer is considered valid (between 0 and 3) and is $int_c.";}?>
?以上程序会输出:
?
This (int_a) integer is considered valid (between 0 and 3).This (int_c) integer is considered valid (between 0 and 3) and is 1.
?
消失有害字符并且验证示例1:
?
<?php$a = 'joe@example.org';$b = 'bogus - at - example dot org';$c = '(bogus@example.org)';$sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL);if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) { echo "This (a) sanitized email address is considered valid.\n";}$sanitized_b = filter_var($b, FILTER_SANITIZE_EMAIL);if (filter_var($sanitized_b, FILTER_VALIDATE_EMAIL)) { echo "This sanitized email address is considered valid.";} else { echo "This (b) sanitized email address is considered invalid.\n";}$sanitized_c = filter_var($c, FILTER_SANITIZE_EMAIL);if (filter_var($sanitized_c, FILTER_VALIDATE_EMAIL)) { echo "This (c) sanitized email address is considered valid.\n"; echo "Before: $c\n"; echo "After: $sanitized_c\n"; }?>
?以上程序会输出:
?
This (a) sanitized email address is considered valid.This (b) sanitized email address is considered invalid.This (c) sanitized email address is considered valid.Before: (bogus@example.org)After: bogus@example.org
?
下面介绍一下filter_input,摘自百度百科:
?
过滤和验证字串的过滤类型详细请见PHP官方手册
写这篇内容的时候发现以前有朋友写过了,给个链接可以查看一下更多?http://blog.johnsonlu.org/phpfilter/