三分钟带你搞定PHP过滤器(实例详解)
在之前的文章中给大家带来了《PHP表单学习之$_GET与$_POST变量的使用与区别》,其中详细的给大家带来了PHP中$_GET 变量与$_POST 变量的相关知识,本篇文章我们来看一下PHP中的过滤器相关知识,希望能够帮助到大家!
在之前的文章中我们学习了$_GET
变量与$_POST
变量的相关知识,其中有提到关于安全性的问题,本篇文章中所要讲到的PHP过滤器就是用于验证和过滤来自非安全来源的数据,比如用户的输入。那接下来我们就来看一下PHP中的过滤器的相关知识,一起看看吧。
PHP过滤器
什么是过滤器,可以先把过滤器简单的理解为过滤掉不安全的数据。那我们为什么要使用过了不起呢?在我们的日常开发中几乎所有的Web应用程序都会依赖外部的输入,这些数据通常都是来自类似Web服务的其他应用程序或者来自用户。我们通过过滤器的使用能够确保应用程序能够获得正确的输入类型。
我们应该对像来自表单的输入数据、Cookies、服务器变量和数据库查询结果等这样的外部数据进行过滤,对输入进行过滤是很重要的,因此我们需要使用过滤器。
PHP过滤器是用于验证和过滤来自非安全来源的数据,是测试、验证和过滤用户输入或者自定义数据时任何Web应用程序的重要组成部分,它的设计目的就是为了是数据处理更轻松快捷。
函数和过滤器
当我们需要过滤变量的时候,可以使用很多过滤函数:filter_var()
通过一个指定的过滤器来过滤单一的变量;filter_var_array()
通过相同的或不同的过滤器来过滤多个变量;filter_input
获取一个输入变量,并对它进行过滤;filter_input_array
获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤。
接下来我们通过一个示例来看一下通过filter_var()
函数验证了一个整数,示例如下:
<?php header("Content-type:text/html;charset=utf-8"); $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
输出结果:
上述示例便是通过filter_var() 过滤函数来验证了一个整数,接下来看一下我们常用的两种过滤器。
<strong>Validating</strong>
过滤器:用于验证用户输入,有着严格的格式规则(比如 URL 或 E-Mail 验证),如果成功则返回预期的类型,如果失败则返回 FALSE。<strong>Sanitizing</strong>
过滤器:用于允许或禁止字符串中指定的字符,无数据格式规则,始终返回字符串。
选项和标志
选项和标志用于向指定的过滤器添加额外的过滤选项。不同的过滤器有不同的选项和标志。
接下来我们通过示例来看一下用 filter_var()
和 "min_range"
以及 "max_range"
选项验证了一个整数,示例如下:
<?php header("Content-type:text/html;charset=utf-8"); $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("是个合法的整数"); } ?>
输出结果:
在上述示例中,需要注意的是:就像上面的代码一样,选项必须放入一个名为 "options" 的相关数组中。如果使用标志,则不需在数组内。由于整数是 "300",它不在指定的范围内,所以输出结果如上。
验证输入
接下来让我们试着验证来自表单的输入。我们需要做的第一件事情是确认是否存在我们正在查找的输入数据。然后我们用 filter_input()
函数过滤输入的数据。
接下来我们通过示例来看一下以GET的方式输入变量 "email" 被传到 PHP 页面,示例如下:
<?php header("Content-type:text/html;charset=utf-8"); if(!filter_has_var(INPUT_GET, "email")) { echo("没有 email 参数"); } else { if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "不是一个合法的 E-Mail"; } else { echo "是一个合法的 E-Mail"; } } ?>
输出结果:
其中我们需要注意的是:上面的实例有一个通过 "GET" 方法传送的输入变量 (email),检测是否存在 "GET" 类型的 "email" 输入变量,如果存在输入变量,检测它是否是有效的 e-mail 地址。
净化输入
让我们试着清理一下从表单传来的 URL。首先,我们要确认是否存在我们正在查找的输入数据。然后,我们用 filter_input()
函数来净化输入数据。
下面我们通过示例来看一下输入变量 "url" 被传到 PHP 页面,示例如下:
<?php header("Content-type:text/html;charset=utf-8"); if(!filter_has_var(INPUT_GET, "url")) { echo("没有 url 参数"); } else { $url = filter_input(INPUT_GET, "url", FILTER_SANITIZE_URL); echo $url; } ?>
输出结果:
其中我们需要注意的是:
FILTER_SANITIZE_URL 过滤器删除字符串中所有非法的 URL 字符。上面的实例有一个通过 "GET" 方法传送的输入变量 (url):检测是否存在 "GET" 类型的 "url" 输入变量,如果存在此输入变量,对其进行净化(删除非法字符),并将其存储在 $url 变量中。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上是三分钟带你搞定PHP过滤器(实例详解)的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。
