程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP手機號歸屬地查詢程序代碼

PHP手機號歸屬地查詢程序代碼

編輯:關於PHP編程

本文章總結了兩個常用的手機歸屬地查詢程序,一種是利用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 {
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 (!empty($num) && !empty($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>
";
 }
?>


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved