21xrx.com
2024-12-22 22:35:07 Sunday
登录
文章检索 我的文章 写文章
PHP过滤器
2021-07-22 18:04:33 深夜i     --     --
P H P


验证数据=确定数据是否处于正确的形式。

消毒数据=从数据中删除任何非法字符。


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()函数通过指定的筛选器过滤单个变量。 它需要两条数据:

  • 您要检查的变量
  • 要使用的数据的类型

过滤一个字符串

以下示例使用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("Integer is valid");
} else {
  echo("Integer is not valid");
}
?>

提示:filter_var()和0的问题

在上面的示例中,如果$int设置为0,则上面的函数将返回 “整数无效”。 要解决此问题,请使用以下代码:

<?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 = "john.doe@example.com";

// 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");
}
?>

消毒并验证URL

以下示例使用filter_var()函数首先删除URL的非法字符,然后检查$URL是否是有效的URL:

<?php
$url = "https://www.21xrx.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过滤器参考

为了完整的所有过滤器功能,请转到我们的完整 PHP过滤器参考。 检查每个过滤器查看 可提供哪些选项和标志。

该引用包含每个功能的简要说明和使用示例!

 

 

  
  
下一篇: PHP回调函数

评论区

{{item['qq_nickname']}}
()
回复
回复