搜索
系统检测到您的用户名不符合规范:

国家行政区域代码生成地区表(最终版本)

浏览:4523 发布日期:2014年11月28日 分类:技术分享 关键字: 地区表
统计局行政区划分代码: http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201401/t20140116_501070.html
把网页保存为txt

去掉头尾内容如下:

下面上代码: public function index(){
/**
* 代码共六位,两位一组,从左到右依次代表 省-市-县

代码 => 父级id
ppccxx => ppcc00
如: 110101(东城区) => 110100(市辖区) 110228(密云县) => 110200(县)

ppcc00 => pp0000
如: 110100(市辖区) => 110000(北京市) 130100(石家庄市) => 130000(河北省)

pp0000 => 0
如: 110000(北京市) => 0(省级)

CREATE TABLE `d_area` (
`id` int(10) unsigned NOT NULL,
`area` varchar(255) NOT NULL COMMENT '地区名称',
`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父级地区ID',
PRIMARY KEY (`id`),
KEY `pid` (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='地区信息表';
*/

header('content-type:text/html;charset=utf-8');
$content = file_get_contents('./Document/area_data.txt');

$content = array_filter(explode("\r\n", trim($content)));
foreach($content as $value){
$address = array_values(array_filter(explode(' ', $value)));
$data = array('id'=>$address[0], 'area'=>trim($address[1]));
M('area')->add($data);
}

//区级
$city = M('area')->where('id LIKE "____00"')->getField('id', true);
foreach($city as $code){
M('area')->where('id LIKE "'.substr($code, 0, 4).'__"')->save(array('pid'=>$code));

}

//市级
$province = M('area')->where('id LIKE "__0000"')->getField('id', true);
foreach($province as $code){
M('area')->where('id LIKE "'.substr($code, 0, 2).'__00"')->save(array('pid'=>$code));

}

//省级
M('area')->where('id LIKE "__0000"')->save(array('pid'=>0));


}

}
生成表数据:


附件 d_area.rar ( 26.81 KB 下载:245 次 )

最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
zbseoag
积分:1412 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /