永兴集团(中国区)官方网站-Macau App Station
首 页
永兴集团导航入口
网站案例
网站建设
小程序开发
解决方案
永兴集团官网
联系方维
400-800-9385
PHP开发制作三级城市联动效果
发表日期:2021-05-31 09:20:04 作者来源:刘红旺 浏览:2329 标签:
PHP开发制作
当前位置:
首页
-
永兴集团官网
-
网站建设
网站上有很多jq的三级联动,主要是城市地区数据,那永兴集团怎么获取到这些数据并且保存在永兴集团的数据表中,
这是国家统计局的数据,下面永兴集团用PHP程序将他们采集下来
1.数据采集
public function countryaddress() {
$ModelObj = D('Areas');
$baseUrl = 'http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/';
//第一级
$firstDetail = file_get_contents($baseUrl . 'index.html');
$firstPattern = '/
(.*?)
<\/a><\/td>/i';
preg_match_all($firstPattern, $firstDetail, $firstResult);
$urllist = $firstResult[1];
$namelist = $firstResult[2];
foreach ($namelist as $k => $v) {
$iscun = $ModelObj->where(array('name' => iconv('GB2312', 'UTF-8', $v)))->find();
if (!$iscun) {
$adddata = array(
'code' => $k + 1, //省级编码暂时默认以排序号来定
'name' => iconv('GB2312', 'UTF-8', $v),
'parent_id' => 0,
);
$first_re = $ModelObj->data($adddata)->add();
if ($first_re) {
//第二级
$secondDetail = file_get_contents($baseUrl . $urllist[$k] . '.html');
$secondPattern = "/
(\d+?)<\/a><\/td>
(.*?)<\/a>/i";
preg_match_all($secondPattern, $secondDetail, $secondResult);
$secondUrlList = $secondResult[1];
$secondCodeList = $secondResult[2];
$secondNameList = $secondResult[4];
foreach ($secondNameList as $m => $n) {
$iscun = $ModelObj->where(array('name' => iconv('GB2312', 'UTF-8', $n), 'parent_id' => $first_re))->find();
if (!$iscun) {
$adddata = array(
'code' => $secondCodeList[$m],
'name' => iconv('GB2312', 'UTF-8', $n),
'parent_id' => $first_re,
);
$second_re = $ModelObj->add($adddata);
if ($second_re) {
//第三级
$thirdDetail = file_get_contents($baseUrl . $urllist[$k] . '/' . $secondUrlList[$m] . '.html');
$thirdPattern = '/
(?:
)*(\d+?)(?:<\/a>)*<\/td>
(?:
)*(.*?)(?:<\/a>)*<\/td>/i';
preg_match_all($thirdPattern, $thirdDetail, $thirdResult);
$thirdCodeList = $thirdResult[1];
$thirdNameList = $thirdResult[2];
foreach ($thirdNameList as $p => $q) {
$iscun = $ModelObj->where(array('name' => iconv('GB2312', 'UTF-8', $q), 'parent_id' => $second_re))->find();
if (!$iscun) {
$adddata = array(
'code' => $thirdCodeList[$p],
'name' => iconv('GB2312', 'UTF-8', $q),
'parent_id' => $second_re,
);
$third_re = $ModelObj->add($adddata);
}
}
}
}
}
}
}
}
}
2.省级代码替换
/**
*
*/
public function provincereplace() {
//省级code
$provinceCode = array(
array('code' => '110000', 'title' => '北京市'),
array('code' => '120000', 'title' => '天津市'),
array('code' => '130000', 'title' => '河北省'),
array('code' => '140000', 'title' => '山西省'),
array('code' => '150000', 'title' => '内蒙古自治区'),
array('code' => '210000', 'title' => '辽宁省'),
array('code' => '220000', 'title' => '吉林省'),
array('code' => '230000', 'title' => '黑龙江省'),
array('code' => '310000', 'title' => '上海市'),
array('code' => '320000', 'title' => '江苏省'),
array('code' => '330000', 'title' => '浙江省'),
array('code' => '340000', 'title' => '安徽省'),
array('code' => '350000', 'title' => '福建省'),
array('code' => '360000', 'title' => '江西省'),
array('code' => '370000', 'title' => '山东省'),
array('code' => '410000', 'title' => '河南省'),
array('code' => '420000', 'title' => '湖北省'),
array('code' => '430000', 'title' => '湖南省'),
array('code' => '440000', 'title' => '广东省'),
array('code' => '450000', 'title' => '广西壮族自治区'),
array('code' => '460000', 'title' => '海南省'),
array('code' => '500000', 'title' => '重庆市'),
array('code' => '510000', 'title' => '四川省'),
array('code' => '520000', 'title' => '贵州省'),
array('code' => '530000', 'title' => '云南省'),
array('code' => '540000', 'title' => '西藏自治区'),
array('code' => '610000', 'title' => '陕西省'),
array('code' => '620000', 'title' => '甘肃省'),
array('code' => '630000', 'title' => '青海省'),
array('code' => '640000', 'title' => '宁夏回族自治区'),
array('code' => '650000', 'title' => '新疆维吾尔自治区'),
);
$ModelObj = D('Areas');
foreach ($provinceCode as $k => $v) {
$ModelObj->where(array('name' => $v['title']))->setField('code', $v['code']);
}
}
3.处理级别父级代码
/**
* 处理级别父级代码
*/
public function levelandparentcode() {
$ModelObj = D('Areas');
$alllist = $ModelObj->select();
foreach ($alllist as $k => $v) {
if (!$v['parent_id']) {
$data = array(
'level' => 1,
'parent_code' => '0',
);
} else {
$parent = $ModelObj->where(array('id' => $v['parent_id']))->find();
if (!$parent['parent_id']) {
$data = array(
'level' => 2,
'parent_code' => $parent['code'],
);
} else {
$data = array(
'level' => 3,
'parent_code' => $parent['code'],
);
}
}
$re = $ModelObj->where(array('id' => $v['id']))->save($data);
}
}
4. 有了三级的数据做联动就很简单。
省
{$item.name}
市
区/县
后台只要通过id查询出该级别下的数据就可以
如没特殊注明,文章均为永兴集团原创,转载请注明来自/news/6051.html
上一篇:
【谴责】成都微乐源码网络抄袭永兴集团网络骗局
下一篇:
如何做一个“好”网站
相关网站设计案例
中特威科技
哲商集团
医疗器械创新网
相关资讯
java制作的网站从部署角度为啥比PHP网站安...
日期:2025-04-29 浏览:137
PHP网站开发中如何防止SQL注入
日期:2025-04-10 浏览:261
PHP的网站选择Linux服务器还是Windows服务...
日期:2025-02-24 浏览:301
常见问题
企业网站建设常见问题整理合集【置顶】
在深圳建设一个公司网站多少钱
开发网站需要多久跟这九个因素有关
最新文章
网站系统实现接收邮件功能
浏览量:3133
中国风网站,基本要素有哪些?如何抓“形”传“...
浏览量:2790
教你如何在网站页面上插入youtub...
浏览量:3531
小程序商城商品功能细节(一)
浏览量:4173
网站上线的一些准备和基本操作
浏览量:2683
视觉冲击之网页首屏设计
浏览量:2734
400-800-9385
回到顶部