<?php
#PHP内置的validate filter
$input_data = True;
$result = filter_var($input_data,FILTER_VALIDATE_BOOLEAN);
#FILTER_VALIDATE_BOOLEAN对应验证布尔值
var_dump($result); #因为input_data是真,所以结果是 True
$input_data = 123;
$result = filter_var($input_data,FILTER_VALIDATE_BOOLEAN);
var_dump($result); #因为input_data是123数字类型,所以结果是 False
/*
filter_var 函数有三个参数 分别是 输入数据 filter对应的id 和选项
输入数据类型可以是多种的
filter的对应id在这里可以查看列表 http://www.php.net/manual/zh/filter.filters.php
选项是一个关联数组 可以在上面的地址中查看可以使用的选项,也可以自己使用回调函数来处理输入数据
*/
#使用回调例子
function callback_filter($value) #回调函数
{
return $value.'_callback';
}
$result = filter_var('input',FILTER_CALLBACK,array('options'=>'callback_filter'));
var_dump($result);
#验证一个非10进制的整数
#8进制
$result = filter_var('0755', FILTER_VALIDATE_INT, array('flags'=>FILTER_FLAG_ALLOW_OCTAL));
var_dump($result);
#16进制
$result = filter_var('0XAF', FILTER_VALIDATE_INT, array('flags'=>FILTER_FLAG_ALLOW_HEX));
var_dump($result);
#注意这里输出的结果是10进制的
#当验证失败时设置默认值 因为字符a不是整数,所以在无法通过验证的时候被强制替换成了默认值123
$result = filter_var('a',FILTER_VALIDATE_INT,array('options'=>array('default'=>123)));
var_dump($result);
#限制数字范围
$result = filter_var(99,FILTER_VALIDATE_INT,array('options'=>array('default'=>50,'max_range'=>98)));
var_dump($result);
$result = filter_var(99,FILTER_VALIDATE_INT,array('options'=>array('default'=>50,'min_range'=>100)));
var_dump($result);
#min与max可以同时使用
#验证email格式
$result = filter_var('a@a.c',FILTER_VALIDATE_EMAIL);
var_dump($result);
#验证IP
$result = filter_var('192.168.1.1',FILTER_VALIDATE_IP);
var_dump($result);
#FILTER_VALIDATE_IP的flags有四个分别是
#FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE
#对应 IPV4 IPV6 过滤私有地址 与 过滤保留地址
#验证url
$result = filter_var('http://www.yahoo.com/',FILTER_VALIDATE_URL);
var_dump($result);
#url 有两种flags 其中FILTER_FLAG_QUERY_REQUIRED 要求url中必须包含查询字符串
#FILTER_FLAG_PATH_REQUIRED 要求格式必须包含为/结尾的路径或者包含文件
#简单来说就是 http://aaa.com是不能通过的 但是http://aaa.com/或者http://aaa.com/index.html就可以通过)
#注意 url并不仅限于http与https ,而且目前也只支持ASCII字符,例如中文域名就会失败
#根据正则验证
$result = filter_var('0000112884634874',FILTER_VALIDATE_REGEXP,array('options'=>array('regexp'=>"/\d+/")));
var_dump($result);
#在php 5.4.11之前 +0与-0只能通过float验证,在5.4.11之后可以通过int和float验证
#以上就是PHP内置的几种validate filter,下回介绍其他filter

PHP强大的内置filter (一)的更多相关文章

  1. PHP强大的内置filter (二) 完

    <?php #Sanitize filters #Sanitize filters 可以清理掉不规范的字符 # FILTER_SANITIZE_EMAIL 可以清理除了 字母和数字 以及 !#$ ...

  2. Spring Cloud Gateway实战之五:内置filter

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. Python函数式编程:内置filter函数使用说明

    filter操作是函数式编程中对集合的重要操作之一,其作用是从原集合中筛选符合条件的条目,组成一个新的集合. 这在我们日常编程中是非常常见的操作.我们通常的做法是通过循环语句来处理. 而使用filte ...

  4. Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

    Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是 ...

  5. Spring Security 入门(1-6-2)Spring Security - 内置的filter顺序、自定义filter、http元素和对应的filterChain

    Spring Security 的底层是通过一系列的 Filter 来管理的,每个 Filter 都有其自身的功能,而且各个 Filter 在功能上还有关联关系,所以它们的顺序也是非常重要的. 1.S ...

  6. PHP内置的字符串处理函数

    字符串的特点    1.其他类型的数据用在字符串类型处理函数中,会自动将其转化成字符串后,在处理 <?php echo substr("abcdefghijklmn",2,4 ...

  7. 【转】这些隐藏在苹果iPhone当中的内置代码你是否知道?

    原文地址:http://www.ithome.com/html/iphone/200569.htm 每一部手机都有一些内置的隐藏代码,我们称之为“指令”,这些代码加在一起就叫做“指令集”.当然这些代码 ...

  8. JSP内置对象--pageContext对象(非常重要!!!)

    pageContext对象是javax.servlet.jsp.PageContext类的实例,只要表示的是一个jsp页面的上下文,而且功能强大,几乎可以操作各种内置对象. >forward(S ...

  9. 019--python内置函数

    一.内置高阶函数 map函数:接收两个数据 函数和序列,map()将函数调用'映射'到序列身上,并返回一个含有所有返回值的一个列表 num1 = [1,2,3,4,5] num2 = [5,4,3,2 ...

随机推荐

  1. Virtualbox: Shared directory- “unknown filesystem type vboxsf”

    1. "设置”中,"共享文件夹”,把要共享的文件夹添加上. 2. 然后打开系统,找到“安装增强功能”,这时桌面上多了一个光盘或者看/media/下面是不是已经文件了,虽然这个时候可 ...

  2. PHP 日期格式:yyyy-MM-dd'T'HH:mm:ss.SSSZ 的写法

    今日在写一个接口是,其中有一个时间参数的格式是 yyyy-MM-dd'T'HH:mm:ss.SSSZ 查了一下最后的SSSZ SSS毫秒 Z代表时区 'T' 就是固定字符T,也有的指的是任意字符,本接 ...

  3. 选错实施顾问公司 ERP项目九死一生

    今天接到一个朋友的电话,他是一家企业老总.这位老总感到非常头疼的是他的企业选择了一款国际上名气很大的ERP软件,但实施效果却强差人意.他的疑问是"不是说只要选对了ERP产品,谁实施都能成功吗 ...

  4. [每天一道A+B]签到检测程序

    签到检测程序,解析github提供的api内的json,解决了服务器和本地时间不同步的问题(时差+8H),实现按日期更新当前签到表.下一步是从api获取organization的信息,求出未签到的成员 ...

  5. BZOJ 3754 Tree之最小方差树

    枚举平均数. mdzz编译器. #include<iostream> #include<cstdio> #include<cstring> #include< ...

  6. Spring AOP简介

    AOP简述 AOP的概念早在上个世纪九十年代初就已经出现了,当时的研究人员通过对面向对象思想局限性的分析研究出了一种新的编程思想来帮助开发者减少代码重复提高开发效率,那就是AOP,Aspect-Ori ...

  7. [转]glew, glee与 gl glu glut glx glext的区别和关系

    原文地址:http://blog.csdn.net/delacroix_xu/article/details/5881942 因为也是初接触,所以就当了解,等深入学习后再回顾这篇文章观点. GLEW是 ...

  8. 通过外部接口 根据ip获取城市名

    3种接口 淘宝/百度/不知名/   推荐淘宝接口 ip自个去获取,下附带php 获取ip的示例 function getIP() { static $realip; if (isset($_SERVE ...

  9. jquery事件学习笔记(转载)

    一.页面载入1.ready(fn)当DOM载入就绪可以查询及操纵时绑定一个要执行的函数.这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度. 简单地说,这个方法纯粹是对向wi ...

  10. 手动编译Spring4.2源码,以及把源码导入myEclipse中

    前提条件,先在本地配置好JDK1.8, 安装好Git 执行下面命令: 1,双击Git Bash, 进入源码存放路径 cd E:\Foler 2,git clone git@github.com:spr ...