zoukankan      html  css  js  c++  java
  • php过滤器

    PHP过滤器

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

    什么是外部数据

    来自表单的输入数据
    Cookies
    Web services data
    服务器变量
    数据库查询结果

    函数和过滤器

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

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

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

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

    <?php
    $int = 113;
    if(filter_var($int,FILTER_VALIDATE_INT)){
          echo "是一个合法的整数";
    }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

    <?php
        if(filter_has_var(INPUT_GET,"email")){  
           echo "没有参数";
         }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必须,规定要检查的变量

    <?php
            
    if(filter_has_var(INPUT_GET,'url')){
            
    echo "没有url参数";
    }else{
    $url = filter_input(INPUT_GET,'url',FILTER_SANITIZE_URL);
    }
        
    ?>

    过滤多个输入

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

    <?php
            //对表单输入的name,age,email进行过滤
            $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过滤器,可以调用自定义的函数,把他作为过滤器来使用。

    例如:

    <?php
      //定义过滤函数
    function converSpace($string) { return str_replace("_",".",$string); //将"_"转换为"."; } $string = "www_baidu_com!"; echo filter_var($string,FILTER_CALLBACK,array("options"=>"converSpace")); ?>
  • 相关阅读:
    我爱java系列之---【微服务间的认证—Feign拦截器】
    我爱java系列之---【设置权限的三种解决方案】
    581. Shortest Unsorted Continuous Subarray
    129. Sum Root to Leaf Numbers
    513. Find Bottom Left Tree Value
    515. Find Largest Value in Each Tree Row
    155. Min Stack max stack Maxpop O(1) 操作
    painting house
    Minimum Adjustment Cost
    k Sum
  • 原文地址:https://www.cnblogs.com/liaopeng123/p/11555155.html
Copyright © 2011-2022 走看看