0

0

PHP中filter函数校验数据的方法详解

php中文网

php中文网

发布时间:2016-06-06 19:49:55

|

1269人浏览过

|

来源于php中文网

原创

这篇文章主要是介绍PHP中filter函数校验数据的方法详解,PHP过滤器包含两种类型:Validation用来验证验证项是否合法、Sanitization用来格式化被验证的项目,因此

介绍PHP中filter函数校验数据的方法详解,PHP过滤器包含两种类型:Validation用来验证验证项是否合法
、Sanitization用来格式化被验证的项目,因此它可能会修改验证项的值,将不合法的字符删除。

input_filters_list()

用来列出当前系统所支持的所有过滤器。

复制代码 代码如下:


foreach(filter_list() as $id => $filter)
{
    echo $filter.' '.filter_id($filter)."\n";
}
?>

以上代码会输出如下信息

Filter Name Filter ID int 257 boolean 258 float 259 validate_regexp 272 validate_url 273 validate_email 274 validate_ip 275 string 513 stripped 513 encoded 514 special_chars 515 full_special_chars 522 unsafe_raw 516 email 517 url 518 number_int 519 number_float 520 magic_quotes 521 callback 1024

每个过滤器都会拥有一个独自的ID。这里的每个过滤器都能够被filter_var()函数使用。下面将会逐个介绍其使用方法。注意 ,上面的string和strippedID相同,这是因为他们是同一个过滤器,或者说是同一个过滤器的两个别名罢了。

立即学习PHP免费学习笔记(深入)”;

过滤数据

使用filter_var()方法对数据进行过滤,下面是一个简单的过滤例子

复制代码 代码如下:


    /*** an integer to check ***/
    $int = 1234;
    /*** validate the integer ***/
    echo filter_var($int, FILTER_VALIDATE_INT);
    //1234
?>

上面代码将会数据一个整数型的1234,因为$int变量通过的整数类型的验证,这次更换一下$int变量的内容

复制代码 代码如下:


    /*** an integer to check ***/
    $int = 'abc1234';

    /*** validate the integer ***/
    echo filter_var($int, FILTER_VALIDATE_INT);
?>

此时在运行代码,发现没有任何变量输出,这是因为$in变量没有通过验证,因此这个方法返回bool(false)。同时也需要注意 一下,即使$int=”,也会返回bool(false)

整数验证

上面的几段代码简单的验证了一个给定值是否为整数的例子。其实FILTER_VALIDATE_INT也提供了数值范围的验证,下面我们 来验证一个变量,,判断它是否为整数型,并验证它的值是否在50到100之间

$min, "max_range" => $max)); //42 ?>

运行上面的代码,发现42被输出来了,并没有发现任何错误,这是为什么啊?原来想要向验证中添加附加验证规则时候,需要传递一个含有'options‘键的数组,向下面这样:

Sail!企业网站管理系统简体中文版1.2
Sail!企业网站管理系统简体中文版1.2

Sail企业网站管理系统(以下称Sail)是一个基于PHP+Mysql架构的企业网站管理系统。Sail 采用模块化方式开发,功能强大灵活易于扩展,并且完全开放源代码,面向大中型站点提供重量级企业网站建设解决方案。2年来,凭借Silence长期积累的丰富的Web开发及数据库经验和勇于创新追求完美的设计理念,使得Sail得到了很多公司和网站的认可,并且越来越多地被应用到大中型商业网站主要功能:单页、文

下载

复制代码 代码如下:


    /*** an integer to check ***/
    $int = 42;

    /*** lower limit of the int ***/
    $min = 50;

    /*** upper limit of the int ***/
    $max = 100;

    /*** validate the integer ***/
    echo filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range" => $min, "max_range" => $max)));
?>

运行上面的代码,页面不会有任何输出,因为上面返回了false,说明验证成功。

使用该方法也可以对负数进行范围验证
同时这种方式也支持单范围取值,即只是指定一个最大值或者最小值的范围,如:

复制代码 代码如下:


    /*** an integer to check ***/
    $int = 12;

    /*** lower limit of the int ***/
    $min = 10;

    /*** validate the integer ***/
    echo filter_var($int, FILTER_VALIDATE_INT,array('options' => array('min_range' => $min)));
    //12
?>

上述代码会验证$int是否是大于(不包括等于)$min的整数类型的值,运行代码,输出12

对一组变量进行验证

上面的这些例子只是简单的对单个值进行验证,那么如果对一组变量进行验证呢?答案是使用filter_var_array()。该函数可以同时验证多个不同类型的数据。这里先做一个简单的例子:

复制代码 代码如下:


    /*** an array of values to filter ***/
    $arr = array(10,"109","", "-1234", "some text", "asdf234asdfgs", array());

    /*** create an array of filtered values ***/
    $filtered_array = filter_var_array($arr, FILTER_VALIDATE_INT);

    /*** print out the results ***/
    foreach($filtered_array as $key => $value)
    {
        echo $key.' -- '.$value.'
';
    }
?>

运行上述代码,输出如下:

复制代码 代码如下:


0 -- 10
1 -- 109
2 --
3 -- -1234
4 --
5 --
6 -- Array

八进制和十六进制

FILTER_VALIDATE_INT过滤器同时支持八进制和十六进制,这两种flags是:

FILTER_FLAG_ALLOW_HEX
FILTER_FLAG_ALLOW_OCTAL

利用数组传递flags

复制代码 代码如下:

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

29

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

20

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

37

2025.12.25

word转换成ppt教程大全
word转换成ppt教程大全

本专题整合了word转换成ppt教程,阅读专题下面的文章了解更多详细操作。

6

2025.12.25

msvcp140.dll丢失相关教程
msvcp140.dll丢失相关教程

本专题整合了msvcp140.dll丢失相关解决方法,阅读专题下面的文章了解更多详细操作。

2

2025.12.25

笔记本电脑卡反应很慢处理方法汇总
笔记本电脑卡反应很慢处理方法汇总

本专题整合了笔记本电脑卡反应慢解决方法,阅读专题下面的文章了解更多详细内容。

6

2025.12.25

微信调黑色模式教程
微信调黑色模式教程

本专题整合了微信调黑色模式教程,阅读下面的文章了解更多详细内容。

5

2025.12.25

ps入门教程
ps入门教程

本专题整合了ps相关教程,阅读下面的文章了解更多详细内容。

4

2025.12.25

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

218

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 9.7万人学习

SciPy 教程
SciPy 教程

共10课时 | 0.9万人学习

NumPy 教程
NumPy 教程

共44课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号