PHP开发工程师@温州。博客关于:技术、生活、读书、互联网。

PHP解析行政区划代码

1.获取数据源

到国家统计局下载最新行政区划代码

http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/

保存为data.txt


通过对ID进行分析,可以发现

  1. ID一共6位

  2. 若2-6位为0000,则为省级,可以认定其父ID为1(中国)

  3. 若5-6为00,则为市级,其父ID为 自己ID前2位+0000(省)

  4. 其他则为区县,其父ID为 自己ID前4位+00


2.编写PHP解析为标准JSON数据

$file = fopen('data.txt', 'r');

$area = array();

while (!feof($file)) {

    $row = trim(fgets($file));

    if (!preg_match('/^(\d+)\s+(.+)$/', $row, $matches)) {

        continue;

    }

    list($row, $id, $name) = $matches;    

    $pid = function(){};

    if(($id % 10000) == 0){

        $pid = 1;

    }else if(($id % 100) == 0){

        $pid = floor($id/10000)*10000;

    }else{

        $pid = floor($id/100)*100;

    }

    $temp = array("id"=>$id,"name"=>$name,"pid"=>$pid);

    $area[] = $temp;

}

file_put_contents("./area.json", json_encode($area));



行政区划代码


评论

© 袁克强的博客 | Powered by LOFTER