PHP强大的内置filter (一)
<?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 (一)的更多相关文章
- PHP强大的内置filter (二) 完
<?php #Sanitize filters #Sanitize filters 可以清理掉不规范的字符 # FILTER_SANITIZE_EMAIL 可以清理除了 字母和数字 以及 !#$ ...
- Spring Cloud Gateway实战之五:内置filter
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Python函数式编程:内置filter函数使用说明
filter操作是函数式编程中对集合的重要操作之一,其作用是从原集合中筛选符合条件的条目,组成一个新的集合. 这在我们日常编程中是非常常见的操作.我们通常的做法是通过循环语句来处理. 而使用filte ...
- Python经常使用内置函数介绍【filter,map,reduce,apply,zip】
Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是 ...
- Spring Security 入门(1-6-2)Spring Security - 内置的filter顺序、自定义filter、http元素和对应的filterChain
Spring Security 的底层是通过一系列的 Filter 来管理的,每个 Filter 都有其自身的功能,而且各个 Filter 在功能上还有关联关系,所以它们的顺序也是非常重要的. 1.S ...
- PHP内置的字符串处理函数
字符串的特点 1.其他类型的数据用在字符串类型处理函数中,会自动将其转化成字符串后,在处理 <?php echo substr("abcdefghijklmn",2,4 ...
- 【转】这些隐藏在苹果iPhone当中的内置代码你是否知道?
原文地址:http://www.ithome.com/html/iphone/200569.htm 每一部手机都有一些内置的隐藏代码,我们称之为“指令”,这些代码加在一起就叫做“指令集”.当然这些代码 ...
- JSP内置对象--pageContext对象(非常重要!!!)
pageContext对象是javax.servlet.jsp.PageContext类的实例,只要表示的是一个jsp页面的上下文,而且功能强大,几乎可以操作各种内置对象. >forward(S ...
- 019--python内置函数
一.内置高阶函数 map函数:接收两个数据 函数和序列,map()将函数调用'映射'到序列身上,并返回一个含有所有返回值的一个列表 num1 = [1,2,3,4,5] num2 = [5,4,3,2 ...
随机推荐
- [lintcode the-smallest-difference]最小差(python)
题目链接:http://www.lintcode.com/zh-cn/problem/the-smallest-difference/ 给定两个整数数组(第一个是数组 A,第二个是数组 B),在数组 ...
- Longest Valid Parentheses(最长有效括号)
Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...
- 《OD大数据实战》HBase入门实战
官方参考文档:http://abloz.com/hbase/book.html#shell_tricks 1.2.3. Shell 练习 用shell连接你的HBase $ ./bin/hbase s ...
- java之并发
一.线程 在java中多线程执行任务,主要有两种方式,一种是通过继承Thread类,重写run方法,优点是比较方便的创建一个线程,缺点是java中每个类只能有一个基类,所有继承了T火热ad类后,就不能 ...
- Codeforces 447 C DZY Loves Sequences【DP】
题意:给出一列数,在这个序列里面找到一个连续的严格上升的子串,现在可以任意修改序列里面的一个数,问得到的子串最长是多少 看的题解,自己没有想出来 假设修改的是a[i],那么有三种情况, 1.a[i]& ...
- You must SET PASSWORD before executing this statement解决
[转载] MySql5.6操作时报错:You must SET PASSWORD before executing this statement解决 转载: http://blog.csdn.net/ ...
- linux vim 配置文件(高亮+自动缩进+行号+折叠+优化)
点评:将一下代码copy到 用户目录下 新建文件为 .vimrc保存即可生效 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份)"===================== ...
- noSession or session is close 错误
<filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>or ...
- UVa 11464 Even Parity 偶数矩阵
给你一个 n * n 的 01 矩阵,现在你的任务是将这个矩阵中尽量少的 0 转化为 1 ,使得每个数的上下左右四个相邻的数加起来是偶数.求最少的转化个数. 首先,n 的规模并不大,最大只有15.但是 ...
- Android fragment源码全解析
Fragment 相信基本上每个android developer都用过,但是知晓其原理 用的好的还是不多,今天就从源码的角度上来带着大家分析一下Fragment的源码,对fragment有了更深层次 ...