php-高级(过滤器 filter)
1.回顾:上篇学习了 php高级里的错误处理和Exception
2.这篇将要学习 过滤器 filter
3.Filter 过滤器
3.1了解
过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入
3.2 什么过滤器?
(1)过滤器用于验证过滤来自非安全来源的数据
(2)验证和过滤用户输入或自定义数据是任何web应用的重要组成部分
(3)为了安全起见
(4)过滤的数据包括:来自表单的输入数据,Cookies,服务器变量,数据库查询结果
3.3 函数和过滤器
(1)过滤变量,可以使用下面过滤器:
(2)filter_var() 通过一个指定的过滤器来过滤单一变量
(3)filter_var_array() 通过相同的或不同的过滤器来过滤多个变量
(4)filter_input() 获取一个输入变量,进行过滤
(5)filter_input_array() 获取多个输入变量,并通过相同的或不同的过滤器进行过滤
$int=123; if(!filter_var($int,FILTER_VALIDATE_INT)){ echo "不是int类型"; }else{ echo "是 int类型"; }
3.4 选项和标志
(1)用于指定过滤器添加额外的过滤选项
(2)下面代码定义了一个范围0~256,当var为300是会判断错误
#用于指定过滤器添加额外的过滤选项 #下面代码定义了一个范围0~256,当var为300是会判断错误 $var=300; $int_option=array( "options"=>array( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var,FILTER_VALIDATE_INT,$int_option)){ echo "not Integer"; }else{ echo "is Integer"; } echo "<br>";
3.5 验证输入
#使用 filter_input函数过滤输入数据 #测试:在地址上,用get方式传参 #demo:http://localhost:1095/index_demo8.php?email=11@ss.com if(!filter_input(!filter_has_var(INPUT_GET),"email")){ echo("email 不存在!"); }else{ if(!filter_input(INPUT_GET,"email",FILTER_VALIDATE_EMAIL)){ echo "email 不正确"; }else{ echo "email 正确"; } }3.6 净化输入
#使用清理表单传来的URL #测试:使用post方式,检测url变量 #存在变量,删除非法字符(净化),并将其存储在$url变量中 #可以在表单里测试 if(!filter_has_var(INPUT_POST,"url")){ echo("url 不存在"); }else{ $url=filter_input(INPUT_POST,"url",FILTER_SANITIZE_URL); echo $url; }
3.7 过滤多个输入
#避免使用多个filter_var()和filter_input() #使用filter_var_array和filter_input_array() #过滤name是字符串,age是正数(1~120之间),email格式 $filters = array( "name" => array( "filter"=>FILTER_SANITIZE_STRING ), "age" => array( "filter"=>FILTER_VALIDATE_INT, "options"=>array( "min_range"=>1, "max_range"=>120 ) ), "email"=> FILTER_VALIDATE_EMAIL, ); #返回的是数组,过滤的时候,谁出错,不存储谁 $result = filter_input_array(INPUT_GET, $filters); if (!$result["age"]) { echo("Age must be a number between 1 and 120.<br />"); }3.8 Filter CallBack 的使用
#通过FILTER CALLBACK过滤器,可以调用自定义函数,把他作为一个过滤器使用 function convertSpace($str){ return str_replace("_"," ",$str); } $str="yuan_ming_zhuo_LABELNET"; echo filter_var($str,FILTER_CALLBACK,array("options"=>"convertSpace"));
下篇将学习 php-面向对象编程!
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 怎么让手机网站自适应设备屏幕宽度?
- 下一篇: php://filter 使用