霜天部落 | 关注LAMP高性能、高并发架构的设计与研究

PHP表单验证类分享

在php网站开发的过程中,表单验证也是必不可少的。我们通常用javascript在客户端进行验证,但是对于一些懂网站知识的人来说很容易跨过客户端的表单验证,这里将为大家分享一个服务端的PHP表单验证类。大家也可以从中学习到有关正则表达式的应用。

= $min && strlen($str) <= $max) ? true : false;		
	}

	/**
	 * 验证Email
	 * @param $str string 邮箱
	 * @return bool true/false 
	 */	
	static function Email($str)
	{
		$str = self::strTrim($str);
		return preg_match("/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.){1,2}[a-z]{2,4}$/i",$str) ? true : false;	
	}

	/**
	 * 验证身份证(中国)
	 * @param $str string 身份证号码
	 * @return bool true/false 
	 */	
	static function idCard($str)
	{
		$str = self::strTrim($str);
		return preg_match("/^([0-9]{15}|[0-9]{17}[0-9a-z])$/i",$str) ? true : false;			
	}

	/**
	 * 验证座机电话
	 * @param $str string 座机电话
	 * @param $type 座机类型,分国内(CHN)和国际(INT)
	 * @return bool true/false 
	 */		
	static function Phone($type, $str)
	{
		$str=self::strTrim($str);
		switch($type)
		{
			case "CHN":
				return preg_match("/^([0-9]{3}|0[0-9]{3})-[0-9]{7,8}$/",$str) ? true : false;			
				break;
			case "INT":
				return preg_match("/^[0-9]{4}-([0-9]{3}|0[0-9]{3})-[0-9]{7,8}$/",$str) ? true : false;				
				break;
			default:
				break;
		}
	}
	/**
	 * 验证邮编
	 * @param $str string 邮编
	 * @return bool true/false 
	 */	
	static function Zipcode($str)
	{
		$str=self::strTrim($str);
		return preg_match("/^[1-9]\d{5}$/", $str) ? true : false;		
	}
	/**
	 * 验证URL
	 * @param $str string 邮编
	 * @return bool true/false 
	 */	
	static function Url($str)
	{
		$str=self::strTrim($str);
		return preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/",$str) ? true : false;    
	}
}
?>

PHP表单验证类举例:

$str="frostsky@frostsky.com";
if(regExp::Email($str))
{
	echo "ok";
} else {
	echo "no";
}