如果你读了关于PHP过滤器的第一课,你已经知道为什么你需要关心PHP过滤以及它是如何工作的。使 PHP 清理输入意味着为您的 Web 应用程序提供额外的保护层,因为外部数据有时会使其面临风险。
在本教程中,我们将更深入地探讨并了解有关高级过滤器的更多信息。您将发现它们如何帮助 PHP 清理您的 Web 应用程序收到的输入。它们还可以使 PHP 验证 URL 地址、识别 QueryString 并理解代码中使用的字符的 ASCII 值。
内容
PHP 清理输入:主要提示
PHP 提供了用于处理数据的高级过滤器。
PHP 输入清理在处理查询时尤为重要。
使用 filter_var()
下面的示例用于检查变量是否实际上是整数,并且值是否介于 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 地址验证
现在,在此示例中,用于确定是否为正确的 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清理来自外部源的输入。
您会发现它们在处理查询时非常有用。
当你使PHP清理输入时,你可以尽可能具体地说明你想要删除的字符。
filter_var工作原理与PHP函数类似。filter_input
陕公网安备 61012502000223号
评论一下吧