php中的过滤器,php过滤器

PHP过滤器

PHP过滤器用于验证和过滤来自非安全数据源,比如用户的输入

什么是外部数据

来自表单的输入数据

Cookies

Web services data

服务器变量

数据库查询结果

函数和过滤器

如需过滤变量,请使用下面的过滤器函数之一:

filter_var() - 通过一个指定的过滤器来过滤单一的变量

filter_var_array() - 通过相同的或不同的过滤器来过滤多个变量

实例,利用filter_var()函数验证一个整数

}else{echo "不是一个合法的整数";

}?>

选项和标志

选项和标志用于向指定的过滤器添加额外的过滤选项。

不同的过滤器有不同的选项和标志

在实例中,利用filter_var()和min_range以及max_range选项验证一个整数,整数的范围是0到255

<?php $var = 300;$int_options = array("options" => array("min_range" =>0,

"max_range" =>256)

);if(filter_var($var,FILTER_VALIDATE_INT,$int_options)){echo "是一个合法整数";

}else{echo "不是一个合法整数";

}?>

验证表单输入

首先确认是否存在我们正在查找的输入数据

其次利用filter_input()函数过滤输入的数据

filter_input(input_type,variable,filter,options)

//input_type,规定输入的类型,variable必须,规定要过滤的变量,filter,可选,规定要使用的过滤器ID,默认是FILTER_SANITIZE_STRING

}else{if(filter_input(INPUT_GET,"email",FILTER_VALIDATE_EMAIL))

{echo "是一个合法的email";

}echo "不是合法的email";

}?>

净化输入

通过GET方法传送的输入变量(url);

1、检测是否存在GET类型的url输入变量

2、如果存在,删除非法字符,并将其存储在$url中

filter_has_var(type,variable) //type 必须,规定要检测的类型。variable必须,规定要检查的变量

}else{$url = filter_input(INPUT_GET,'url',FILTER_SANITIZE_URL);

}?>

过滤多个输入

表单通常是由多个输入字段组成,避免重复调用,可以使用filter_var_array或filter_input_array函数。

$filter = array("name" => array("filter" => FILTER_SANITIZE_STRING //name是字符串类型

),

"age" => array("filter" => FILTER_VALIDATE_INT, //age是整数类型

"options" => array('min_range' =>1,

'max_range' =>120)

),

"email" => FILTER_VALIDATE_EMAIL, //邮箱是email类型

);$result = filter_input_array(INPUT_GET,$filter);if(!$result["age"])

{echo "年龄必须在1到120之间";

}else if(!$result['name'])

{echo "name输入错误";

}else{echo "输入正确";

}?>

使用Filter Calllback调用自定义的函数,使用Filter Calllback过滤器,可以调用自定义的函数,把他作为过滤器来使用。

例如:

//定义过滤函数function converSpace($string)

{return str_replace("_",".",$string); //将"_"转换为".";

}$string = "www_baidu_com!";echo filter_var($string,FILTER_CALLBACK,array("options"=>"converSpace"));?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值