• PHP强大的内置filter (一)


     1 <?php
     2 #PHP内置的validate filter
     3 $input_data = True;
     4 $result = filter_var($input_data,FILTER_VALIDATE_BOOLEAN);
     5 #FILTER_VALIDATE_BOOLEAN对应验证布尔值
     6 var_dump($result); #因为input_data是真,所以结果是 True
     7 $input_data = 123;
     8 $result = filter_var($input_data,FILTER_VALIDATE_BOOLEAN);
     9 var_dump($result); #因为input_data是123数字类型,所以结果是 False
    10 /*
    11 filter_var 函数有三个参数 分别是 输入数据 filter对应的id 和选项
    12 输入数据类型可以是多种的
    13 filter的对应id在这里可以查看列表 http://www.php.net/manual/zh/filter.filters.php
    14 选项是一个关联数组 可以在上面的地址中查看可以使用的选项,也可以自己使用回调函数来处理输入数据
    15 */
    16 #使用回调例子
    17 function callback_filter($value) #回调函数
    18 {
    19 return $value.'_callback';
    20 }
    21 $result = filter_var('input',FILTER_CALLBACK,array('options'=>'callback_filter'));
    22 var_dump($result);
    23 #验证一个非10进制的整数
    24 #8进制
    25 $result = filter_var('0755', FILTER_VALIDATE_INT, array('flags'=>FILTER_FLAG_ALLOW_OCTAL));
    26 var_dump($result);
    27 #16进制
    28 $result = filter_var('0XAF', FILTER_VALIDATE_INT, array('flags'=>FILTER_FLAG_ALLOW_HEX));
    29 var_dump($result);
    30 #注意这里输出的结果是10进制的
    31 #当验证失败时设置默认值  因为字符a不是整数,所以在无法通过验证的时候被强制替换成了默认值123 
    32 $result = filter_var('a',FILTER_VALIDATE_INT,array('options'=>array('default'=>123)));
    33 var_dump($result);
    34 #限制数字范围
    35 $result = filter_var(99,FILTER_VALIDATE_INT,array('options'=>array('default'=>50,'max_range'=>98)));
    36 var_dump($result);
    37 $result = filter_var(99,FILTER_VALIDATE_INT,array('options'=>array('default'=>50,'min_range'=>100)));
    38 var_dump($result);
    39 #min与max可以同时使用
    40 #验证email格式
    41 $result = filter_var('a@a.c',FILTER_VALIDATE_EMAIL);
    42 var_dump($result);
    43 #验证IP
    44 $result = filter_var('192.168.1.1',FILTER_VALIDATE_IP);
    45 var_dump($result);
    46 #FILTER_VALIDATE_IP的flags有四个分别是
    47 #FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE
    48 #对应 IPV4 IPV6 过滤私有地址 与 过滤保留地址
    49 #验证url
    50 $result = filter_var('http://www.yahoo.com/',FILTER_VALIDATE_URL);
    51 var_dump($result);
    52 #url 有两种flags 其中FILTER_FLAG_QUERY_REQUIRED 要求url中必须包含查询字符串
    53 #FILTER_FLAG_PATH_REQUIRED 要求格式必须包含为/结尾的路径或者包含文件
    54 #简单来说就是 http://aaa.com是不能通过的 但是http://aaa.com/或者http://aaa.com/index.html就可以通过)
    55 #注意 url并不仅限于http与https ,而且目前也只支持ASCII字符,例如中文域名就会失败
    56 #根据正则验证
    57 $result = filter_var('0000112884634874',FILTER_VALIDATE_REGEXP,array('options'=>array('regexp'=>"/d+/")));
    58 var_dump($result);
    59 #在php 5.4.11之前 +0与-0只能通过float验证,在5.4.11之后可以通过int和float验证
    60 #以上就是PHP内置的几种validate filter,下回介绍其他filter
  • 相关阅读:
    C#的内存管理原理解析+标准Dispose模式的实现
    深入理解C#:编程技巧总结(二)
    深入理解C#:编程技巧总结(一)
    深刻理解:C#中的委托、事件
    你知道JavaScript中的结果值是什么吗?
    switch语句的妙用
    相等比较、关系比较总结
    用ServiceStack操作使用redis的问题
    springmvc 处理put,delete请求
    easyui 验证动态添加和删除问题
  • 原文地址:https://www.cnblogs.com/toumingbai/p/3778497.html
Copyright © 2020-2023  润新知