首页 > 后端开发 > php教程 > PHP 过滤器

PHP 过滤器

PHPz
发布: 2024-08-29 13:03:46
原创
705 人浏览过

很少有语言具有过滤功能。过滤器是编程语言的增值功能之一。这有助于我们在处理之前过滤数据或字符串。现在需要使用它来防止系统中的某些漏洞问题。 PHP 过滤器可用于验证或清理外部输入。 PHP 过滤器是一个扩展,具有我们可以在编码时使用的各种功能和特性。例如,如果我们将表单中的客户端输入作为电子邮件 ID,我们应该在与数据库相关的操作之前对其进行验证或清理。作为编码员或开发人员,我们应该根据我们的业务需求和要求在 PHP 中使用这些过滤器。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

语法

清理和过滤是 Web 应用程序环境中最常见的操作。这是基本语法:

filter_var(variable, filter, options)
登录后复制

这个函数filter_var有3个参数。最后 2 个参数、过滤器和选项是可选的。第一个是变量或标识符本身。这是我们想要过滤的,第二个是我们想要做的(在这里,我们传递了 PHP 中可用选项的 ID),最后一个是与过滤器相关的选项。让我们通过一个测验示例来理解这一点:

代码:

<?php
$int_val = 200;
if(filter_var($int_val, FILTER_VALIDATE_INT)){
echo "The <b>$int_val</b> is a valid one."; // valid
} else{
echo "The <b>$int_val</b> not a valid input as an integer"; // invalid
}
?>
登录后复制

在上面的示例中,我们使用过滤器并检查变量 $int_val 中是否有整数值。所以,这是相同的输出。

输出:

PHP 过滤器

为什么我们在 PHP 中使用过滤器?

许多 PHP Web 应用程序从客户端接收外部输入。这个想法是在处理之前清理用户输入,因为我们不能期望用户正确输入所有数据。任何外部用户或系统输入或数据都可能导致严重的安全问题。

我们可以在此处过滤以清理从各种外部来源输入的数据,例如:

  • 直接客户端用户从表单输入
  • Cookie 数据
  • 来自网络服务的数据
  • 服务器变量数据
  • 数据库查询结果

PHP 过滤器和消毒器一起使我们能够了解输入是否有效。如果不是有效的输入,在这种情况下,我们可以对其进行清理以使其成为有效的输入。在接下来的示例部分中,我们将讨论与此相关的各种示例。

PHP 中的过滤器示例

PHP 中有多种类型的过滤器可用。我们可以使用 filter_list() 函数检查该列表。这些函数过滤 URL、字符串、数字、IP 地址等

示例#1

在本节中,我们将分别看到各种过滤器示例程序。

清理字符串

检查字符串是否有效

代码:

<?php
$comment = "Hello word";
if(filter_var($comment, FILTER_SANITIZE_STRING)){
echo "The <b>$comment</b> is a valid one."; // valid
} else{
echo "The <b>$comment</b> not a valid input"; // invalid
}
?>
登录后复制

在上面的例子中,我们可以看到一个有效的字符串;这就是为什么它给出有效的。

输出:

PHP 过滤器

获取经过清理的字符串作为输出

<?php
$comment = "<i>Hello word</i>";
echo "Before sanitizing: ". $comment;
$comment = filter_var($comment, FILTER_SANITIZE_STRING);
echo "<br>"; // for new line
echo "After sanitizing: ". $comment;
?>
登录后复制

我们可以看到我们有两个不同的输出。我们可以看到消毒前后的输出是不同的。清理后,HTML 标签已被 PHP 过滤功能删除。

输出:

PHP 过滤器

示例#2

验证 IP 地址

PHP过滤函数可以帮我们完成这个工作。让我们看一下例子。

代码:

<?php
$ip_address = "172.16.254.1:40";
if(filter_var($ip_address, FILTER_VALIDATE_IP)){
echo "The <b>$ip_address</b> is a valid one."; // valid
} else{
echo "The <b>$ip_address</b> is not a valid input"; // invalid
}
?>
登录后复制

输出:

PHP 过滤器

示例 #3

清理并验证电子邮件地址

代码:

<?php
$email_address = "someone@@testmail.com";
code>
echo "Before Sanitizing: " . $email_address ."<br>";
if(filter_var($email_address, FILTER_VALIDATE_EMAIL)){
echo "The <b>$email_address</b> is a valid one."; // valid
} else{
echo "The <b>$email_address</b> not a valid input"; // invalid
}
echo "<br>";
echo "After Sanitizing: " .  filter_var($email_address, FILTER_SANITIZE_EMAIL);
?>
登录后复制

在上面的示例中,我们有一个无效的电子邮件 ID 值,因为我们通过使用过滤器函数获取此输出。但当我们清理后,它就会给出正确的电子邮件。

输出:

PHP 过滤器

代码:

<?php
$email_address = "[email protected]";
if(filter_var($email_address, FILTER_VALIDATE_EMAIL)){
echo "The <b>$email_address</b> is a valid one."; // valid
} else{
echo "The <b>$email_address</b> not a valid input"; // invalid
}
?>
登录后复制

在上面的 PHP 代码示例中,我们检查电子邮件是否有效。

输出:

PHP 过滤器

示例#4

清理并验证 URL

在此示例中,我们将查看输入的 URL 是否有效。如果不是有效的 URL,它将对其进行清理以进行更正。

代码:

<?php
$URL = "https://www.educba.com/��courses�";
echo "Before Sanitizing: " . $URL ."<br>";
if(filter_var($URL, FILTER_VALIDATE_URL)){
echo "The <b>$URL</b> is a valid one."; // valid
} else{
echo "The <b>$URL</b> is not a valid input"; // invalid
}
echo "<br>";
echo "After Sanitizing: " . filter_var($URL, FILTER_SANITIZE_URL);
?>
登录后复制

输出:

PHP 过滤器

结论

我们应该使用 PHP 过滤器来验证或清理用户输入。这样,我们就可以限制易受攻击的用户输入。我们可以使用各种 PHP 过滤器函数来验证用户输入和值。我们还可以使用清理来清理值(用户输入或直接分配的值)。在使用任何 cookie 数据进行数据处理之前,我们应该始终使用 PHP 清理程序。

以上是PHP 过滤器的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
php
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板