§ ITPOW >> 文档 >> PHP

PHP 实用教程-验证过滤

作者:vkvi 来源:ITPOW(原创) 日期:2009-5-26

PHP 中值进行验证是很方便的,主要是用 filter_var 这个函数,第一个参数表示要验证的内容,第二个参数表示要进行怎样的验证,第三个参数为可选参数,表示验证所需的额外信息。

if (filter_var("http://www.itpow.com/", FILTER_VALIDATE_URL))
{
    echo "是 URL 格式。", "<br>";
}
else
{
    echo "不是 URL 格式。", "<br>";
}

第二个参数的常用值有:

  • FILTER_VALIDATE_INT 在指定的范围以整数验证值。
  • FILTER_VALIDATE_BOOLEAN 如果是 "1", "true", "on" 以及 "yes",则返回 true,如果是 "0", "false", "off", "no" 以及 "",则返回 false。否则返回 NULL。
  • FILTER_VALIDATE_FLOAT 以浮点数验证值。
  • FILTER_VALIDATE_URL 把值作为 URL 来验证。
  • FILTER_VALIDATE_EMAIL 把值作为 e-mail 来验证。
  • FILTER_VALIDATE_IP 把值作为 IP 地址来验证。
  • FILTER_VALIDATE_REGEXP 根据 regexp,兼容 Perl 的正则表达式来验证值。
  • FILTER_CALLBACK 调用用户自定义函数来过滤数据。

验证指定范围内的 Int

if (filter_var("3.3", FILTER_VALIDATE_INT, array("options"=>array("min_range"=>0, "max_range"=>256))))
{
    echo "是指定范围内的 Int。", "<br>";
}
else
{
    echo "不是 Int 格式,或不在指定范围内。", "<br>";
}

验证正则表达式

if (filter_var("ABCDEFGHI", FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>"/^[a-z]{8,}$/i"))))
{
    echo "正则表达式验证通过。", "<br>";
}
else
{
    echo "正则表达式验证未通过。", "<br>";
}

正则表达式后面跟了个 i,表示忽略大小写。

自定义验证

function check($m)
{
    if ($m > 0)
    {
        return true;
    }
    return false;
}
 
if (filter_var(-3, FILTER_CALLBACK, array("options"=>"check")))
{
    echo "自定义验证通过。", "<br>";
}
else
{
    echo "自定义验证未通过。", "<br>";
}
相关文章