php使用正则匹配函数preg_match、preg_match_all来验证手机号码。

//方法一:
if(preg_match("/1[3458]{1}\d{9}$/",$phonenumber)){  
     echo "是手机号码";  
}else{  
 echo "不是手机号码";  
} 

//方法二:
//正则表达式 
$tel = "158111100112";//手机号码 
if(strlen($tel) == "11") 
{ 
//上面部分判断长度是不是11位 
$n = preg_match_all("/13[123569]{1}\d{8}|15[1235689]\d{8}|188\d{8}/",$tel,$array); 
/*正则表达式("/131,132,133,135,136,139开头随后跟着任意的8为数字 '|'(或者的意思) 
* 151,152,153,156,158.159开头的跟着任意的8为数字 
* 或188开头的再跟着任意的8为数字,匹配其中的任意一组即可。 
* /")*/

var_dump($array); //如果找到了,就会输出电话号码 
}else 
{ 
echo "长度必须是11位"; 
}