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")); ?>
  • 相关阅读:
    jQuery的几个Grid插件简单比较
    位运算符
    Unity --- 纹理压缩基本知识点
    Unity---资源管理中不同资源的路径获取方式
    Unity--- 资源路径问题
    数据结构 --- 基本概念
    《UnityShader入门精要》学习笔记之渲染流水线
    UnityShader中的语义相关
    补充一下角度制与弧度制的相关知识
    NGUI中处理层级问题的几个方法总结
  • 原文地址:https://www.cnblogs.com/liaopeng123/p/11555155.html
Copyright © 2011-2022 走看看