<?php
/*
PHP手机号码归属地批量查询系统 V2024
作者信息:Yujianyue<15058593138@qq.com> 手机号同微
全部完整代码压缩后只有445KB(代码+数据);
安全建议:数据库名称DB改为自己指导的名称(本页参数+两个文件文件名)
或者伪静态规则,限制.json格式和.db格式文件下载
性能:30条批量查询相应时间0.014秒左右;
数据压缩:将网络上59MB的数据压缩到不到2.9MB;
压缩方式:7位手机号段-1299999并转4位36进制(每号缩短3位);
高度重复内容:省+市+邮编+区号很多个汉字数字用2位数字字母代表,见Db.json;
高度重复内容:运营商几个汉字缩短为1个字母代表,见Db.json;
501000行号段信息分存到1296行;四位字母的后二位索引到各行,见Db.json。
查询优化:号段去重再查询,减少同号段重复查询;并保持原来顺序调用显示。
*/
$timu="手机号码归属地批量查询系统(50W号段)";
$datar = 'Db';//纯文件名不含后缀。.json为索引/配置文件;.db为数据文件
$ti = "省市,城市,邮编,区号,运营商";
$lm = 200;
$ta = explode(",",$ti);
function tipx($txt){
preg_match_all("/1[3-9][0-9]{9,9}/",$txt,$ma);
return $ma[0];//得结果
}
function tipy($txt){
preg_match_all("/1[3-9][0-9]{5,5}/",$txt,$ma);
return $ma[0];//得结果
}
function tipz($str,$txt){
$ru = "/{$str}[a-zA-Z0-9]{3,3};/";
preg_match_all($ru,$txt,$ma);
return $ma[0];//得结果
}
function getline($files, $line){
$n = 0;
$handle = fopen($files,'r');
if ($handle) {
while (!feof($handle)) {
++$n;
$out = fgets($handle, 10240);
if($line==$n) break;
}
fclose($handle);
}
if($line==$n) return $out;
return false;
}
if($_GET["x"] == "cha"){
$start = microtime(true); $mstar = memory_get_usage();
$tips = isset($_POST['tips']) ? $_POST['tips'] : '';
$x=base_convert(1000, 36, 10);
$txts = str_replace(array("\r\n","\r","\n","\t",","," "),"|",$tips);
$lisa = tipx($txts);
if(count($lisa)<1) exit("没有识别到有效手机号!");
if(count($lisa)>$lm) exit("单次提交限{$lm}个手机号!");
$lise = tipy(join(";",$lisa));
$j1 = file_get_contents($datar.".json");
$js = json_decode($j1, True);
$jt = []; $lise = array_unique($lise);
foreach($lise as $zz => $mobi){
$m1=$mobi-1299999+$x; $m2 = base_convert($m1, 10, 36);
$m3=substr($m2,0,2); $m4=substr($m2,2,2); $m5=$js["dataline"][$m4];
$rt = getline($datar.".db",$m5); $resc = tipz($m3,$rt)[0];
if($resc){
$qu1=substr($resc,2,2);$qu2=substr($resc,4,1);
$jt[$mobi] =explode("|", $js[dataarea][$qu1] ."|". $js[dataisp][$qu2]);
}
}
echo "<h2><strong>以下信息仅供参考</strong></h2>\r\n";
echo "<table cellspacing=\"0\" class=\"table\" cellpadding=\"0\">\r\n";
echo "<tr class='tt'><td width='99'>手机号</td><td>".join("</td><td>",$ta)."</td></tr>\r\n";
foreach($lisa as $zz => $ges){
$mobi = substr($ges,0,7); $res=$jt[$mobi];
echo "<tr><td>$ges</td><td>".join("</td><td>",$res)."</td></tr>\r\n";
}
echo "</table>\r\n";
$sstop = microtime(true); $mstop = memory_get_usage();
$us = "<p>耗时".number_format($sstop-$start, 5);
$us .= "@耗内存".number_format(($mstop-$mstar)/1024, 2)."KB</p>";
exit($us);
}
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $timu; ?></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes" />
<script type="text/javascript">
console.log("问题反馈电话:","15058593138");
console.log("问题反馈邮件:","admin@12391.net");
function $(objId){
return document.getElementById(objId);
}
function loadcha(xid) {
var xmlhttp;
var Stxt= "nums=aa";
Stxt+="&tips="+ encodeURIComponent($("tips").value);
//$("tips").innerHTML = "正在加载...";
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var btxt = xmlhttp.response;
if(btxt == "err01"){ $("tipx").innerHTML = "!"; return false;}
$('tipx').innerHTML = xmlhttp.response;
}
}
xmlhttp.open("POST", "?x=cha&tt="+Math.random(), true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(Stxt);
}
</script>
<style>
div,#tipx{display:block;width:99.7%;border:0;margin-top:5px;}
textarea{display:block;width:99.7%;border:1px solid #ccc;height:160px;}
table{margin:20px auto;border-left:1px solid #a2c6d3;border-top:3px solid #0180CF;font-size:12px;width:99.7%;}
table td{border-right:1px solid #a2c6d3;border-bottom:1px solid #a2c6d3;padding:2px;word-wrap:break-word;word-break:break-all;}
td{min-width:30px;max-width:490px;}
.tt{background-color: #f2f2f2;}
#submit{ height:35px;}
</style>
</head>
<body>
<form class="form" id="form" method="POST" act="?act=cha" >
<p><?php echo $timu; ?></p>
<textarea id="tips">
<?php
for($ii=0;$ii<15;$ii++){ $rnd = rand(3131,9988); echo "150".$rnd.$rnd."\r\n";}
for($ii=0;$ii<15;$ii++){ $rnd = rand(3131,9988); echo "155".$rnd.$rnd."\r\n";}
?>
</textarea>
<input type="button" id="submit" value="提交发送" onclick="loadcha('xid')">
<div id="tipx"></div>
</form>
</body>
</html>
没有合适的资源?快使用搜索试试~ 我知道了~
PHP手机号码归属地批量查询系统 V2024
共3个文件
php:1个
json:1个
db:1个
需积分: 5 3 下载量 30 浏览量
2024-01-15
13:27:01
上传
评论
收藏 445KB ZIP 举报
温馨提示
全部完整代码压缩后只有445KB(代码+数据); 安全建议:数据库名称DB改为自己指导的名称(本页参数+两个文件文件名) 或者伪静态规则,限制.json格式和.db格式文件下载 性能:30条批量查询相应时间0.014秒左右; 数据压缩:将网络上59MB的数据压缩到不到2.9MB; 压缩方式:7位手机号段-1299999并转4位36进制(每号缩短3位); 高度重复内容:省+市+邮编+区号很多个汉字数字用2位数字字母代表,见Db.json; 高度重复内容:运营商几个汉字缩短为1个字母代表,见Db.json; 501000行号段信息分存到1296行;四位字母的后二位索引到各行,见Db.json。 查询优化:号段去重再查询,减少同号段重复查询;并保持原来顺序调用显示。
资源推荐
资源详情
资源评论
收起资源包目录
MobiCha-20240115_131057_804124.zip (3个子文件)
Mobi4
Db.db 2.89MB
index.php 5KB
Db.json 41KB
共 3 条
- 1
资源评论
YUJIANYUE
- 粉丝: 764
- 资源: 63
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功