手册目录

PHP课程

浏览10489
更新时间2025-08-06

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 应用程序接收外部输入。外部输入/数据可以是:

  • 表单中的用户输入
  • Cookies
  • 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 是整数,则下面代码的输出将是:"Integer is valid"。如果 $int 不是整数,则输出将是:"Integer is not valid":

实例

<?php
$int = 100;

if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("Integer is valid");
} else {
  echo("Integer is not valid");
}
?>
运行实例 »

点击 "运行实例" 按钮查看在线实例

提示:filter_var()0 的问题

在上面的例子中,如果 $int 被设置为 0,上面的函数将返回 "Integer is not valid"。要解决这个问题,请使用以下代码:

实例

<?php
$int = 0;

if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("Integer is valid");
} else {
  echo("Integer is not valid");
}
?>
运行实例 »

点击 "运行实例" 按钮查看在线实例

验证 IP 地址

下面的例子使用 filter_var() 函数检查变量 $ip 是否为有效的 IP 地址:

实例

<?php
$ip = "127.0.0.1";

if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
  echo("$ip is a valid IP address");
} else {
  echo("$ip is not a valid IP address");
}
?>
运行实例 »

点击 "运行实例" 按钮查看在线实例

清理并验证电子邮件地址

下面的例子使用 filter_var() 函数首先从 $email 变量中删除所有非法字符,然后检查它是否是一个有效的电子邮件地址:

实例

<?php
$email = "john.doe@example.com";

// 从电子邮件中删除所有非法字符
$email = filter_var($email, FILTER_SANITIZE_EMAIL);

// 验证电子邮件
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
  echo("$email is a valid email address");
} else {
  echo("$email is not a valid email address");
}
?>
运行实例 »

点击 "运行实例" 按钮查看在线实例

清理并验证 URL

下面的例子使用 filter_var() 函数首先从 URL 中删除所有非法字符,然后检查 $url 是否是一个有效的 URL:

实例

<?php
$url = "https://www.w3school.com.cn";

// 从 URL 中删除所有非法字符
$url = filter_var($url, FILTER_SANITIZE_URL);

// 验证 url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
  echo("$url is a valid URL");
} else {
  echo("$url is not a valid URL");
}
?>
运行实例 »

点击 "运行实例" 按钮查看在线实例

完整的 PHP 过滤器参考手册

如需了解所有过滤器函数的完整参考,请转到我们的完整 PHP 过滤器参考。请检查每个过滤器以查看可用的选项和标志。

该参考手册包含每个函数的简短描述和用法实例!

相关视频

更多

免费

php8,我来也
初级php8,我来也

321756次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382414次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282717次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13413次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时 | 62.5万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时 | 39.7万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时 | 73.8万人学习

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

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