验证数据=确定是否该数据是以适当的形式。
消毒数据=从数据中删除任何非法字符。
PHP的过滤器扩展
PHP过滤器用于验证和消毒外部输入。
PHP的过滤器扩展有很多需要检查用户输入的功能,旨在使数据验证更容易和更快。
该filter_list()函数可用于列出PHP的过滤器扩展提供了什么:
例
<table>
<tr>
<td>Filter Name</td>
<td>Filter 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()函数滤波器具有指定过滤器的单个可变。 这需要两个数据:
- 要检查变量
- 类型检查的使用
消毒的String
下面的示例使用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()函数首先从$电子邮件变量删除所有非法字符,然后检查它是否是一个有效的电子邮件地址:
例
<?php
$email = "[email protected]";
// Remove all illegal
characters from email
$email = filter_var($email,
FILTER_SANITIZE_EMAIL);
// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) ===
false) {
echo("$email is a valid email address");
} else {
echo("$email
is not a valid email address");
}
?>
运行示例» 消毒和验证网址
下面的示例使用filter_var()函数首先从URL中移除所有非法字符,然后检查$ URL是有效的URL:
例
<?php
$url = "http://www.w3ii.com";
// Remove all illegal characters from a url
$url = filter_var($url,
FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) ===
false) {
echo("$url is a valid URL");
} else {
echo("$url
is not a valid URL");
}
?>
运行示例» 完整的PHP Filter参考手册
对于所有的过滤器功能的完整参考,请给我们完整的PHP Filter参考手册。 检查每个过滤器,看看有什么选项和标志是可用的。
该手册包含了简要说明,并使用实例,每个功能!