PHP课程

浏览13601
更新时间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,我来也

34万次学习

收藏

免费

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

39.6万次学习

收藏

免费

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

31万次学习

收藏

精品课程

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

共29课时

64.9万人学习

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

共25课时

41.2万人学习

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

共43课时

76.6万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

64.1万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.3万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

36.2万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

133.1万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载