善用 PHP 的 filter_var() 函数

August 12th, 2012

在PHP中验证E-mail地址普遍都是会用上正则表达式:

preg_match("/[a-zA-Z]{1}[a-zA-Z0-9_]{5,}@[a-zA-Z0-9]{1,}\.[a-zA-Z]{1,3}/", $email_address);

但PHP早已为我们想到了这一点,用 filter_var() 函数可以更加易用清晰地实现同样的要求:

if(filter_var("someone@example....com", FILTER_VALIDATE_EMAIL)==TRUE){
    echo 'E-mail地址正确!';
}else{
    echo 'E-mail地址有误!';
}

这个函数还有很多种参数,下面列举一些较为实用的:

FILTER_VALIDATE_URL  //把值作为 URL 来验证
FILTER_VALIDATE_EMAIL  //把值作为 e-mail 地址来验证
FILTER_VALIDATE_IP  //把值作为 IP 地址来验证
该函数的详细用法可以参考PHP手册
本文共有 6 则回复
  1. Kunr Kunr 回复

    一直没发现这个函数← ← 但是如果要顺便判断长度就麻烦惹。

    1. Wis Wis

      strlen什么的很方便嘛~

  2. Mike Mike 回复

    我就是直接在input里添加个type="email" =、=

    1. Wis Wis

      在后端加个判断可以更加安全噢

  3. 闪闪的星 闪闪的星 回复

    今天再来看看这篇文章,发现挺有用的。

    1. Wis Wis

      文章貌似有些东西显示不出来了,得整整~