本文章總結(jié)了兩個常用的手機(jī)歸屬地查詢程序,一種是利用api調(diào)用第三方接口實(shí)現(xiàn),一種是利用我們自己的手機(jī)數(shù)據(jù)庫查詢?nèi)缓笤倥袛嗍謾C(jī)號歸屬地查詢.
先來看一個調(diào)用第三方法網(wǎng)站的一個程序,主要使用curl實(shí)現(xiàn),需要開啟php對curl的支持,如果你是windows系統(tǒng)在你的的php.ini文件的設(shè)置,找到php_curl.dll,并取消前面的分號注釋就行了,如下所示:
取消下面的注釋 extension=php_curl.dll
如果您是在Linux下面,那么,您需要重新編譯您的PHP了,編輯時,您需要打開編譯參數(shù),在configure命令上加上“–with-curl”參數(shù).
然后重啟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 '手機(jī)號碼格式錯誤!';
- } else {//開源代碼Vevb.com
- echo $data;
- }
- }
- ?>
- <form action="mobile.php" method="get">
- 手機(jī)號碼: <input type="text" name="number" /> <input type="submit" value="提交" />
- </form>
實(shí)例二:這個實(shí)例利用了手機(jī)數(shù)據(jù)庫,把文件保存在本地然后查找數(shù)據(jù)庫再來差別,但是你得經(jīng)常更新數(shù)據(jù)庫才行,代碼如下:
- <html>
- <head>
- <title>手機(jī)號碼歸屬地查詢</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>手機(jī)號碼:<input type="text" name="num">(至少7位)</p>
- <p>詳細(xì)資料:<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>手機(jī)號碼歸屬地查詢</title>
- </head>
- <body>
- <form action="index.php?action=search" method="POST">
- <p>請輸入你要查詢的手機(jī)號碼:<input type="text" name="phone"></p>
- <p><input type="submit" value="查詢手機(jī)號碼歸屬地"></p></p>
- </form>
- <?php
- if (isset($_GET["action"])){
- if ("search"==$_GET["action"] ){
- require ('function.php');
- $phone=(isset($_POST["phone"]))?$_POST["phone"]:die ("請返回");
- echo "你查詢的手機(jī)號碼<font color=red>".$phone."</font>屬于<font color=red>".getphone($phone)."</font>";
- }
- }
- ?>
- </body>
- </html>
function.php函數(shù),代碼如下:
- <?php
- session_start();
- function update($num,$info){
- $dbpath="xiaolin/";
- $len=strlen($num);
- if ( $len < 7 ){
- return "手機(jī)號碼最低7位哦";
- }
- $par="[0-9]";
- for ($i=0;$i<$len;$i++){
- if(!ereg($par,substr($num,$i,1) ) ){
- return "手機(jī)號碼只能為數(shù)字";
- }
- }
- $sunum=scandir($dbpath); //得到支持的手機(jī)號碼前綴
- array_splice($sunum,0,1); //把當(dāng)前目錄取消
- 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 "手機(jī)號碼最低7位哦";
- }
- $par="[0-9]";
- for ($i=0;$i<$len;$i++){
- if(!ereg($par,substr($phone,$i,1) ) ){
- return "手機(jī)號碼只能為數(shù)字";
- }
- }
- $sunum=scandir($dbpath); //得到支持的手機(jī)號碼前綴
- array_splice($sunum,0,1); //把當(dāng)前目錄取消
- 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); //處理數(shù)據(jù)
- return (strlen($result)>1)?$result:"無數(shù)據(jù)";
- }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]; //當(dāng)前的號碼段
- $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>手機(jī)號碼歸屬地查詢</p>
- ";
- }
- ?>
新聞熱點(diǎn)
疑難解答