+ -
当前位置:首页 → 问答吧 → php+纯文本的手机号码归属地查询系统--数据库+源码下载

php+纯文本的手机号码归属地查询系统--数据库+源码下载

时间:2008-11-16

来源:互联网

转自:http://www.xiaoxiaoyu.cn/AMP/229.html

演示地址:http://test.xiaoxiaoyu.cn/phone/
        一直以来,总想做一个手机号码归属地查询系统,可是老是定不下心来。今天无意中想起,就细细的做了,前前后后,3个小时吧(包括数据库转换等等),哈哈。
        首先,我这个查询系统不依靠mysql之类的大型数据库,而是依靠文本,因为,一般一个手机号码,在查询系统中起决定作用的就是前7位,那就是说理论上说,需要保存的记录有:10的7次方
        但我们还可以分析:
        13X段(包括130~139),总计10*104=10的5次方,十万条
        15X段(150,153,156,157,158,159)总计6*10的4次方=60000,6万条
        目前,我们理论上要有16W数据,这数据量,不是一笔小数目,你想使用数据库我不拦你反正我没打算用。
        我使用的是纯文本的文件作为数据库,将每一个号码的前三位作为一个文件名,如130,130文件存的是所有130开头的号段资料,共有1W条,一般文件比较小,不会超过300K,Php的文件操作,可以在很短的时间内获取。因此,我共需要16个文件作为数据库,从130~139,还有15X的。
        好了,数据库设计好了,然后是流程,首先要看看手机号码有什么特征:
        1.必须全部是数字
        2.大小为11位
        3.开头三个数必须在13x和15X之间。--(目前,说不定,未来还有12X或是19X系列)
        第一个,使用正则,但因为php下的正则不支持/g(全局),所以使用循环判断,如果有非数字,返回一个error
        第二个,用strlen就行了
        第三个,用substr就行--(最后我没使用,为啥,往后看)
        第三个问题中,我有一个设想,利用遍历子文件的方式得到130~139 15X的文件名,这些就是目前支持的前缀,然后匹配就行了
        不成熟的函数:



  • /*
  • Coding By XiaoXiaoYu
  • Blog:www.xiaoxiaoyu.cn
  • 2008.11.15
  • */
  • function getphone($phone){

  • $dbpath="datas/";

  • $len=strlen($phone);

  • if ( $len !=11 ){

  • return
    "手机号码只支持11位";
  •     }

  • $par="[0-9]";

  • for ($i=0;$i<$len;$i++){

  • if(!ereg($par,substr($phone,$i,1) ) ){

  • return
    "手机号码只能为数字";
  •         }
  •     }

  • $sunum=scandir($dbpath); //得到支持的手机号码前缀

  • array_splice($sunum,0,1); //把当前目录取消

  • array_splice($sunum,0,1);   //把上一级目录去掉

  • $sub=substr($phone,0,3);    //取得该号码的前三位

  • if (in_array($sub,$sunum) ){

  • $num=substr($phone,3,4);

  • $search=file($dbpath.$sub);

  • $result=str_replace($num."=","",$search[$num]); //处理数据

  • return (strlen($result)>1)?$result:"0";
  •     }else{

  • return
    "暂不支持$sub";
  •     }
  • }


        手机号码的归属地中的数据库中的数据,类似这种格式:
        130文件中:
        0000=北京联通GSM卡
        表示:130 0000 开头的为北京联通的GSM卡。
        因为数据库可能有点旧,而我也只是做个演示,所以我没有更新数据库,如果以后有可能的话,我会更新手机号码的数据库的。要得人,要关注我的BLog喽。
        源码+数据库下载:
         phone1.zip (169.47 KB)
下载次数: 150
2008-11-16 09:24



作者: syb328   发布时间: 2008-11-16


支持~嘎嘎~

作者: 0hudu   发布时间: 2008-11-16

好东西,顶一下

作者: MoHock   发布时间: 2008-11-17

好东西,支持

作者: cnITonline.com   发布时间: 2008-11-17

好东西,强烈支持,学习学习

作者: feng8899   发布时间: 2008-11-18