PHP 过滤器
验证数据 = 确定数据是否处于正确格式。
清理数据 = 从数据中删除任何非法字符。
PHP 过滤器扩展
PHP 过滤器用于验证和清理外部输入。
PHP 过滤器扩展包含许多用于检查用户输入的功能,旨在使数据验证更轻松快捷。
可以使用 filter_list()
函数列出 PHP 过滤器扩展提供的内容
示例
<table>
<tr>
<td>过滤器名称</td>
<td>过滤器 ID</td>
</tr>
<?php
foreach (filter_list() as $id => $filter) {
echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
</table>
尝试一下 »
为什么使用过滤器?
许多 Web 应用程序接收外部输入。外部输入/数据可能是
- 来自表单的用户输入
- Cookie
- Web 服务数据
- 服务器变量
- 数据库查询结果
您应该始终验证外部数据!
无效的提交数据会导致安全问题并破坏您的网页!
通过使用 PHP 过滤器,您可以确保您的应用程序获得正确的输入!
PHP filter_var() 函数
可以使用 filter_var()
函数验证和清理数据。
使用 filter_var()
函数用指定的过滤器筛选单个变量。它需要两部分数据
- 要检查的变量
- 要使用的检查类型
清理字符串
以下示例使用 filter_var()
函数从字符串中删除所有 HTML 标记
示例
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
尝试一下 »
验证整数
以下示例使用 filter_var()
函数检查变量 $int 是否为整数。如果 $int 是整数,则下面代码的输出将为:“整数有效”。如果 $int 不是整数,则输出将为:“整数无效”
示例
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("整数有效");
} else {
echo("整数无效");
}
?>
尝试一下 »
提示:filter_var() 和 0 的问题
在上面的示例中,如果 $int 设置为 0,则上面的函数将返回“整数无效”。要解决此问题,请使用以下代码
示例
<?php
$int = 0;
if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("整数有效");
} else {
echo("整数无效");
}
?>
尝试一下 »
验证 IP 地址
以下示例使用 filter_var()
函数检查变量 $ip 是否为有效的 IP 地址
示例
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
echo("$ip 是一个有效的 IP 地址");
} else {
echo("$ip 不是一个有效的 IP 地址");
}
?>
尝试一下 »
清理和验证电子邮件地址
以下示例使用 filter_var()
函数首先从 $email 变量中删除所有非法字符,然后检查它是否为有效的电子邮件地址
示例
<?php
$email = "[email protected]";
// 从电子邮件中删除所有非法字符
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// 验证电子邮件
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email 是一个有效的电子邮件地址");
} else {
echo("$email 不是一个有效的电子邮件地址");
}
?>
尝试一下 »
清理和验证 URL
以下示例使用 filter_var()
函数首先从 URL 中删除所有非法字符,然后检查 $url 是否为有效的 URL
示例
<?php
$url = "https://w3schools.org.cn";
// 从 URL 中删除所有非法字符
$url = filter_var($url, FILTER_SANITIZE_URL);
// 验证 URL
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url 是一个有效的 URL");
} else {
echo("$url 不是一个有效的 URL");
}
?>
尝试一下 »
完整的 PHP 过滤器参考
有关所有过滤器函数的完整参考,请访问我们的完整 PHP 过滤器参考。检查每个过滤器以查看可用的选项和标志。
该参考包含每个函数的简要说明和使用示例!