首先我们介绍使用自己的数据库查询多个手机号码,那还是建议你拥有一个自己的的手机号码数据库。正常情况下,只是满足一般查询的话,你不需要去购买专业版的手机号码数据库,增加无谓成本。我免费为你提供一个ACCESS数据库,包含17万多条数据,常用的130-139、150-159以及180-189开头手机号码段都在其中,你可以借助数据库工具轻松地将它转换成MYSQL或其它版本数据库 最新手机号码数据库下载地址:http://xiazai.52php.cn/201209/yuanma/phone-number-database-jb51.rar PHP+MYSQL手机号码归属地查询实现方法 通过上面的介绍,我们已经有了自己的MYSQL数据表。这个表结构很简单:ID(序号),code(区号),num(手机号码段),cardtype(手机卡类型),city(手机号码归属地)。注意,这个表存储数据量很大,应当根据你的sql查询语句,建立合适的索引字段,以提高查询效率。 1)获取手机号码归属地,我们只需要通过判断手机号码段归属地即可。主要通过以下函数实现,其中GetAlabNum、cn_substr、str_replace都是字符串操作函数,$dsql是数据库操作类。 <div class="codetitle"><a style="CURSOR: pointer" data="67599" class="copybut" id="copybut67599" onclick="doCopy('code67599')"> 代码如下:<div class="codebody" id="code67599"> function GetTelphone($tel) { global $city,$dsql; if(isset($tel)) $tel = GetAlabNum(trim($tel));//GetAlabNum函数用于替换全角数字,将可能存在的非法手机号码转换为数字;trim去除多余空格。 else return false; if(strlen($tel) < 7) return false; $tel = cn_substr($tel,11);//先截取11个字符,防止是多个手机号码 //if(!is_numeric($tel)) return false; if(cn_substr($tel,1) == "0")//判断手机号码是否以0开头,这种情况可能会是座机号以0开头 { if(cn_substr($tel,2) == "01" || cn_substr($tel,2) == "02") $tel = cn_substr($tel,3);//3位区号 else $tel = cn_substr($tel,4); $row = $dsql->GetOne(" Select code,city as dd from dede_tel where code='$tel' group by code "); } else { $tel = cn_substr($tel,7); $row = $dsql->GetOne(" Select num,city as dd from dede_tel where num='$tel' "); } $city = $row['dd']; if($city) { $city = str_replace("省","-",$city); $city = str_replace("市","",$city); $city = " <font color="green">[".$city."]"; return $city; } } api实现方法,这里不需要自己的数据库但有限制了 主要使用curl实现,需要开启php对curl的支持。 <div class="codetitle"><a style="CURSOR: pointer" data="59313" class="copybut" id="copybut59313" onclick="doCopy('code59313')"> 代码如下:<div class="codebody" id="code59313"> <?php header(“Content-Type:text/html;charset=utf-8″); if (isset($_GET['number'])) { $url = ‘http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo'; $number = $_GET['number']; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,true); curl_setopt($ch,CURLOPT_POSTFIELDS,“mobileCode={$number}&userId=”); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); $data = curl_exec($ch); curl_close($ch); $data = simplexml_load_string($data); if (strpos($data,‘http://')) { echo ‘手机号码格式错误!'; } else { echo $data; } } ?> 与php mysql手机号码归属地查询这个会慢很多,毕竟要通过第三方法数据。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|