PHP高级教程(11):PHP过滤器(Filter)
验证输入让我们试着验证来自表单的输入。 我们需要作的第一件事情是确认是否存在我们正在查找的输入数据。 然后我们用 filter_input() 函数过滤输入的数据。 在下面的例子中,输入变量 "email" 被传到 PHP 页面: <?php if(!filter_has_var(INPUT_GET, "email")) { echo("Input type does not exist"); } else { if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "E-Mail is not valid"; } else { echo "E-Mail is valid"; } } ?> 例子解释:上面的例子有一个通过 "GET" 方法传送的输入变量 (email):
净化输入让我们试着清理一下从表单传来的 URL。 首先,我们要确认是否存在我们正在查找的输入数据。 然后,我们用 filter_input() 函数来净化输入数据。 在下面的例子中,输入变量 "url" 被传到 PHP 页面: <?php if(!filter_has_var(INPUT_POST, "url")) { echo("Input type does not exist"); } else { $url = filter_input(INPUT_POST, "url", FILTER_SANITIZE_URL); } ?> 例子解释:上面的例子有一个通过 "POST" 方法传送的输入变量 (url):
假如输入变量类似这样:"http://www.W3#$%S^%$#ool.com.cn/",则净化后的 $url 变量应该是这样的: http://www.W3School.com.cn/ 过滤多个输入表单通常由多个输入字段组成。为了避免对 filter_var 或 filter_input 重复调用,我们可以使用 filter_var_array 或 the filter_input_array 函数。 在本例中,我们使用 filter_input_array() 函数来过滤三个 GET 变量。接收到的 GET 变量是一个名称、一个年龄以及一个邮件地址: <?php $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 />"); } elseif(!$result["email"]) { echo("E-Mail is not valid.<br />"); } else { echo("User input is valid"); } ?> 例子解释:上面的例子有三个通过 "GET" 方法传送的输入变量 (name, age and email)
filter_input_array() 函数的第二个参数可以是数组或单一过滤器的 ID。 如果该参数是单一过滤器的 ID,那么这个指定的过滤器会过滤输入数组中所有的值。 如果该参数是一个数组,那么此数组必须遵循下面的规则:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |