02
2012
10

php实现手机号码归属地查询

 有的时候写些小运用,涉及到手机号时,一般都希望获取到手机号码归属地。像手机在线有一些接口提供,可是都需要收费,或者免费的呢,是用iframe或者链接的形式提供,没有办法想要什么取什么。比如我就想取手机号码归属地,但是他就什么区号啊,辖区什么乱七八糟的一堆。

不过费了很大劲,还是找到一个提供内容比较少的接口,  这个网站提供的,如下 我用其接口做的查询,http://thinkalways.net/x_cheater/mobile.php

比说如上图,我就想得到江西 南昌,很简单的,用一个mb_substr($data,12,5,'utf-8');函数就可以截取到,当然也仅限于截取到这个江西南昌,因为各地地名的长度并不是固定的,所以截取起来就有个问题。那要怎么办呢?

要不怎么说php受这么多人支持呢,这里又有另外一个函数,strrpos($string,$find);,从一个字符串中查找到另一个字符串的位置,上例只要改成这样就好了mb_substr($data,12,strrpos($data,$tmp),'utf-8'),手机号码长度都是固定的,是11位,加上一个冒号,从第12位开始找起,找地址长度位。但是这里其实还差一步,strrpos函数反回的位置,utf-8,每个中文字是占三位字符的,稍加改动,截取就没有问题了。

mb_substr($data,12,(strrpos($data,$tmp)-12-1)/3,'utf-8');

 

这样就可以单独的把号码归属地取出来,存入数据库了。当然这么写也是有些不完善的,比如英文字符,这么写就搞不定,还好我国地名暂无英文字符。我有这么个功能就够用了,把完整源代码放上,有兴趣可以去完善。

PHP代码
  1. <?php    
  2. header("Content-Type:text/html;charset=utf-8");    
  3. if (isset($_GET['number']))   
  4. {   
  5.     
  6.     $url = 'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo';    
  7.     $number = $_GET['number'];    
  8.     $ch = curl_init();    
  9.     curl_setopt($ch, CURLOPT_URL, $url);    
  10.     curl_setopt($ch, CURLOPT_POST, true);    
  11.     curl_setopt($ch, CURLOPT_POSTFIELDS, "mobileCode={$number}&userId=");    
  12.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
  13.     $data = curl_exec($ch);    
  14.     curl_close($ch);    
  15.     $data = simplexml_load_string($data);    
  16.        
  17.     if (strpos($data'http://'))   
  18.     {    
  19.         echo '手机号码格式错误!';    
  20.     }   
  21.     else  
  22.     {    
  23.         $tmp=mb_substr($data,12,2,'utf-8');   
  24.   
  25.         echo mb_substr($data,12,(strrpos($data,$tmp)-12-1)/3,'utf-8');   
  26.   
  27.         echo "<br />";   
  28.   
  29.         echo $data;    
  30.     }    
  31. }    
  32. ?>    
  33. <form action="mobile.php" method="get">    
  34.     手机号码: <input type="text" name="number" /> <input type="submit" value="提交" />    
  35. </form>   

 

« 上一篇下一篇 »

相关文章:

CodeIgniter中get_post 方法需要注意的地方  (2014-2-2 22:55:3)

PHP中判断变量为空的几种方法  (2014-1-24 9:40:14)

#学习笔记#php字符递增问题  (2013-6-4 10:10:47)

随便弄了个天气预报  (2013-3-24 2:23:12)

一个简单的MySql连接操作类  (2013-1-7 13:33:30)

#学习笔记#php实现计划任务  (2012-11-23 21:2:27)

#学习笔记#php时间格式参数  (2012-11-20 9:24:22)

一个实现无刷新文件上传的思路  (2012-11-11 21:37:19)

php+ajax+json实现分页  (2012-10-5 21:59:44)

php替换函数preg_match()  (2012-9-23 21:8:0)