本文主要是为了记录备查。
为了开发 Magento 2 checkout 页面省市区三级联动,需要整理出我国的省市区数据。
数据以国家统计局公布的 最新县及县以上行政区划代码(截止2016年7月31日) 为参考。
其他年份的参考国家统计局行政区划代码
总计:一级 34 条记录,二级 365 条,三级 2822 条。
刚开始的思路不对,白浪费了许多时间。
附上转化和校正代码。
// 更好的方法
// 从网站上拷贝后整理成 csv 用 file differ
<?php
header("Content-type: text/html; charset=utf-8");
// 转化
$ofile = fopen('old.csv', 'r');
while (!feof($ofile)) {
echo json_encode(fgetcsv($ofile), JSON_UNESCAPED_UNICODE);
echo ',<br/>';
}
// 以公布数据为本,看整理数据中有哪些缺少或不同
// $res = [
// ['110000', '北京'],
// ['120000', '天津'],
// ['130000', '河北省'],
// // ... 省略
// ['654326', '吉木乃县'],
// ];
// $ofile = fopen('old.csv', 'r');
// $zhaodao = false;
// while ($data = fgetcsv($ofile)) {
// foreach ($res as $key) {
// if ($data[1] == '市辖区' || $data[1] == '省直辖县级行政区划' || $data[1] == '自治区直辖县级行政区划') {
// $zhaodao = true;
// break;
// }
// if ($key[0] == $data[0]) {
// $zhaodao = true;
// break;
// }
// }
// if (!$zhaodao) {
// echo $data[0] . $data[1] . '<br/>';
// }
// $zhaodao = false;
// }
// fclose($ofile);
// echo '------------------';
// 以整理数据为本,对比统计数据,是否多余
// $ofile = fopen('old.csv', 'r');
// $zhaodao = false;
// foreach ($res as $key) {
// while ($data = fgetcsv($ofile)) {
// if (($key[0] == $data[0]) && ($key[1] == $data[1])) {
// $zhaodao = true;
// break;
// }
// }
// if (!$zhaodao) {
// echo $key[0] . $key[1] . '<br/>';
// }
// $zhaodao = false;
// fseek($ofile, 0);
// }
sun
如果带上geoip自动识别匹配就最好了
Pisces Post author
感谢你的关注和建议。
GeoIP 自动识别有更广泛的应用,适合单独一个模块。
目前的省市区三级联动目标主要是用框架设计的方法,做到让 city 和 address 可以有下拉选项,要兼容没有选项的地区,并且方法要可以通用,可以扩展到其他国家。
然后是如何做到全局所有 address 的 city 都可以换成选项,最后是兼容性问题。
想来也是头疼。其中有些细节还没有想清楚。
所以,关于 GeoIP 要放到之后再考虑。