PHP手机号归属地查询程序代码

先来看一个调用第三方法网站的一个程序

主要使用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>
";
 }
?>

时间: 2024-10-12 02:01:02

PHP手机号归属地查询程序代码的相关文章

实践篇:搭建无服务器应用--函数计算+API网关+云市场(提供手机号归属地查询服务)

6月5日,阿里云的API网关上线了一个新功能,用户定义API后端服务时可以选择使用Function Compute,这样API网关的用户直接使用函数计算的技术能力,这也使得API网关具备可扩展的后端应用,与此同时函数计算也享受到API网关带来的诸多的好处,例如API的请求流量管控.安全鉴权.访问监控.统计等等. 下面我做一个简单的例子,把函数计算+API网关+云市场三者结合起来,提供一个能查询手机号归属地的服务,在这个框架里不需要配置WEB容器.不需要搭建运行环境.不需要购买负载均衡,通过配置和

java使用淘宝API读写json实现手机归属地查询功能代码_java

一般查询手机归属地内容应该很好用json格式保存,在网上找到了淘宝的归属地API,并下了处理json相关的jar包,做了这个手机归属地查询功能 复制代码 代码如下: package com.think.java; import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net

asp alexa查询程序代码

<% '****************************** '****************************** Dim domain,Url,Url1,strPage,StrPage1 Dim xmldom,SD,SITE,dimg domain = request.QueryString("url") if domain = "" then domain = "111cn.net" If Not iswww(doma

bootstrap+flask+mysql实现网站查询程序代码

一.需求 通过 bootstrap(ajax) + flask + mysql 实现一个简单的web查询页面.当输出身份ID信息后,可以查询到相应的结果.最终效果图如下: flask_mysql_query 二.创建库与表 这里我们先根据需要求创建一个数据库,内容如下: #建库 CREATE DATABASE `web12306`  DEFAULT CHARACTER SET utf8; #建表 web12306 | CREATE TABLE `web12306` (   `user_email

php goolge pr查询程序代码

//下面的函数用于查pr function zeroFill($a, $b) {  $z = hexdec(80000000);  if ($z & $a)  {   $a = ($a>>1);   $a &= (~$z);   $a |= 0x40000000;   $a = ($a>>($b-1));  }  else  {   $a = ($a>>$b);  }  return $a; } function mix($a,$b,$c) {  $a

asp google pr查询程序代码

<% response.expires = -1 response.addheader "cache-control","no-cache" Response.AddHeader "Pragma","no-cache" wd=Request("d") If Request("s")="googles" Then   GoogleUrl="http://

手机号码归属地查询

<!-- 这是一款免费的手机号码归属地查询程序是php教程写的,包括查询实例与实例代码--> <html> <head> <title>手机号码归属地查询</title> </head> <body> <form action="index.php?action=search" method="POST"> <p>请输入你要查询的手机号码:<input

Android使用http请求手机号码归属地查询代码分享_Android

归属地数据源 http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx webxml网站还支持其他请求方式 如SOAP等等 界面比较简单 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" an

Android使用http请求手机号码归属地查询代码分享

归属地数据源 http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx webxml网站还支持其他请求方式 如SOAP等等 界面比较简单 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" an