PHP手机号归属地查询程序代码
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-28 13:08:13 浏览: 评论:0
本文章总结了两个常用的手机归属地查询程序,一种是利用api调用第三方接口实现,一种是利用我们自己的手机数据库查询然后再判断手机号归属地查询.
先来看一个调用第三方法网站的一个程序,主要使用curl实现,需要开启php对curl的支持,如果你是windows系统在你的的php.ini文件的设置,找到php_curl.dll,并取消前面的分号注释就行了,如下所示:
取消下面的注释 extension=php_curl.dll
如果您是在Linux下面,那么,您需要重新编译您的PHP了,编辑时,您需要打开编译参数,在configure命令上加上“–with-curl”参数.
然后重启apache,代码如下:
- <?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 {//开源代码phpfensi.com
- echo $data;
- }
- }
- ?>
- <form action="mobile.php" method="get">
- 手机号码: <input type="text" name="number" /> <input type="submit" value="提交" />
- </form>
实例二:这个实例利用了手机数据库,把文件保存在本地然后查找数据库再来差别,但是你得经常更新数据库才行,代码如下:
- <html>
- <head>
- <title>手机号码归属地查询</title>
- </head>
- <style type="text/css">
- #main{
- height:100%;
- }
- #left {
- float:left;
- height:100%;
- width:10%;
- float:left;
- }
- #right{
- float:left;
- height:100%;
- width:100$;
- }
- </style>
- <body>
- <?php
- require ('function.php');
- $pwd="xiaolin"; //密码,请修改
- if (!isset($_GET["action"]) ){
- header("Location:manage.php?action=login");
- }
- if ($_GET["action"]=="login"){
- ?>
- <form action="manage.php?action=loginin" method="POST">
- <p>请输入密码:</p>
- <p><input type="password" value="" name="pwd"></p>
- <p><input type="submit" value="登录"></p>
- </form>
- <?php
- }elseif ($_GET["action"]=="loginin"){
- $repwd=$_POST["pwd"];
- if ($repwd != $pwd){
- echo "Sorry,密码错误~!";
- }else {
- $_SESSION["flag"]=true;
- leftnav();
- }
- }elseif ($_GET["action"]== "info" ){
- leftnav();
- getinfo();
- ?>
- </div>
- </div>
- <?php
- }elseif ($_GET["action"]=="edit"){
- leftnav();
- ?>
- <form action="manage.php?action=editp" method="POST">
- <p>手机号码:<input type="text" name="num">(至少7位)</p>
- <p>详细资料:<input type="text" name="info"></p>
- <input type="submit" value="更新">
- </form>
- <?php
- }elseif ($_GET["action"]== "loginout"){
- if (isset($_SESSION["flag"])){
- unset($_SESSION["flag"]);
- session_destroy();
- }
- echo "<p><a>登出</a></p><p><a href='manage.php'>返回</a></p>";
- }elseif ($_GET["action"]=="editp"){
- leftnav();
- $num=$_POST["num"];
- $info=$_POST['info'];
- if (!emptyempty($num) && !emptyempty($info) && strlen($num)>=7 ){
- update($num,$info);
- }else{
- die ("不得为空!");
- }
- }elseif ("about"==$_GET["action"]){
- leftnav();
- showabout();
- }
- ?>
- </body>
- </html>
index.php,代码如下:
- <html>
- <head>
- <title>手机号码归属地查询</title>
- </head>
- <body>
- <form action="index.php?action=search" method="POST">
- <p>请输入你要查询的手机号码:<input type="text" name="phone"></p>
- <p><input type="submit" value="查询手机号码归属地"></p></p>
- </form>
- <?php
- if (isset($_GET["action"])){
- if ("search"==$_GET["action"] ){
- require ('function.php');
- $phone=(isset($_POST["phone"]))?$_POST["phone"]:die ("请返回");
- echo "你查询的手机号码<font color=red>".$phone."</font>属于<font color=red>".getphone($phone)."</font>";
- }
- }
- ?>
- </body>
- </html>
function.php函数,代码如下:
- <?php
- session_start();
- function update($num,$info){
- $dbpath="xiaolin/";
- $len=strlen($num);
- if ( $len < 7 ){
- return "手机号码最低7位哦";
- }
- $par="[0-9]";
- for ($i=0;$i<$len;$i++){
- if(!ereg($par,substr($num,$i,1) ) ){
- return "手机号码只能为数字";
- }
- }
- $sunum=scandir($dbpath); //得到支持的手机号码前缀
- array_splice($sunum,0,1); //把当前目录取消
- array_splice($sunum,0,1); //把上一级目录去掉
- $sub=substr($num,0,3); //取得该号码的前三位
- if (in_array($sub,$sunum) ){
- $num1=ltrim(substr($num,3,4),"0");
- $search=file($dbpath.$sub);
- $tmp=$search[$num1];
- $search[$num1]=$num1.'='.$info."n";
- $fp1=fopen($dbpath.$sub.'1','wb+');
- for ($i=0;$i<10000;$i++){
- //$phone=str_pad($i,4,"0",STR_PAD_LEFT);
- //$phoneinfo="";
- //$phoneinfo.=$phone."=";
- //$phoneinfo=(isset($search[$i]))?$search[$i]:"";
- //$phoneinfo.="n";
- fwrite($fp1,$search[$i]);
- }
- fclose($fp1);
- echo "$num 已更新";
- }else{
- die ("暂不支持$sub");
- }
- }
- function getphone($phone){
- $dbpath="xiaolin/";
- $len=strlen($phone);
- if ( $len < 7 ){
- return "手机号码最低7位哦";
- }
- $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=ltrim(substr($phone,3,4),"0");
- $search=file($dbpath.$sub);
- $tmp=$search[$num];
- $result=substr($tmp,strpos($tmp,"=")+1,strlen($tmp)-strpos($tmp,"=")-2); //处理数据
- return (strlen($result)>1)?$result:"无数据";
- }else{
- return "暂不支持$sub";
- }
- }
- function check(){
- if (!isset($_SESSION["flag"]) ){
- die ("<p>请<a href='manage.php?action=login'>登录!</a></p>");
- }elseif ($_SESSION["flag"] != true){
- die ("<p>请<a href='manage.php?action=login'>登录!</a></p>");
- }
- }
- function getinfo(){
- check();
- $nums=array("130","131","132","133","134","135","136","137","138","139","150","151","153","155","156","157","158","159");
- $counts="";
- for($j=0;$j<count($nums);$j++){
- $id=$j;
- if ($id >= count($nums) ){ die ("OVER"); }
- $nownum=$nums[$id]; //当前的号码段
- $dbpath="xiaolin/";
- $fp=fopen("xiaolin/$nownum",'r');
- while(!feof($fp)){
- $line=fgets($fp);
- $tmp=explode("=",$line);
- $num1[$tmp[0]]=substr($line,strpos($line,"=")+1,strlen($line)-strpos($line,"=")-2);
- }
- fclose($fp);
- $flag=0;
- for($i=0;$i<10000;$i++){
- $ser=str_pad($i,4,"0",STR_PAD_LEFT);
- if(!strlen($num1[$ser]) ==0 ){
- ++$flag;
- }
- }
- $counts+=$flag;
- echo "$nownum:段记录$flag</p>";
- }
- echo "总计$counts";}
- function leftnav(){
- check();
- ?>
- <div>
- <div id="right">
- <?php
- }
- function showabout(){
- echo "<p>手机号码归属地查询</p>
- ";
- }
- ?>
Tags: PHP手机号归属地 PHP查询程序
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)