首页博客网络编程
如果你读了关于PHP过滤器的第一课,你已经知道为什么你需要关心PHP过滤以及它是如何工作的。使 PHP 清理输入意味着为您的 Web 应用程序提供额外的保护层,因为外部数据有时会使其面临风险。
在本教程中,我们将更深入地探讨并了解有关高级过滤器的更多信息。您将发现它们如何帮助 PHP 清理您的 Web 应用程序收到的输入。它们还可以使 PHP 验证 URL 地址、识别 QueryString 并理解代码中使用的字符的 ASCII 值。
PHP 提供了用于处理数据的高级过滤器。
PHP 输入清理在处理查询时尤为重要。
下面的示例用于检查变量是否实际上是整数,并且值是否介于 10 和 100 之间:filter_var()
例复制
<?php $int = 185; $min = 10; $max = 100; if (filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range"=>$min, "max_range"=>$max))) === false) { echo("Variable isn't valid"); } else { echo("Variable is valid"); }?>
注意:使用 PHP 函数也可以filter_input类似的结果。
现在,在此示例中,用于确定是否为正确的 IPv6 地址:filter_var()
$ip
例复制
<?php $ip = "2012:0db9:89a4:09d3:1919:8a9e:0390:7394"; if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) { echo("$ip is indeed a valid IPv6 address"); } else { echo("$ip is no valid IPv6 address"); }?>
下面的示例使用调用的函数来使 PHP 验证 URL 地址。基本上,这意味着确定是否是包含 QueryString 的 URL:filter_var()
$url
例复制
<?php $url = "https://www.bitdegree.org/learn/"; if (!filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false) { echo("$url is a valid URL address"); } else { echo("$url is not a valid URL address"); }?>
在下面的示例中,用于 PHP 清理字符串(换句话说,从中删除任何特殊字符)。它从字符串中删除检测到的每个 HTML 标记,以及 ASCII 值高于 127 的所有字符:filter_var()
例复制
<?php $string = "<h2>H3110 W0r1dÆØÅ!</h2>"; $filteredString = filter_var($string, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH); echo $filteredString;?>
高级过滤器使 PHP 开发人员更容易处理数据。例如,更容易使PHP清理来自外部源的输入。
您会发现它们在处理查询时非常有用。
当你使PHP清理输入时,你可以尽可能具体地说明你想要删除的字符。
filter_var
工作原理与PHP函数类似。filter_input
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位