// 解析地址字符串 返回 province city district street 信息 或 false
function parseAddress($address = ''){
if( preg_match('#(?<province>.+?(省|自治区))?(?<city>.+?(盟|自治州|地区))(?<district>.+?(市|区|旗|县))?(?<street>.+?(乡|镇|街道))?#', $address, $info)
|| preg_match('#(?<province>.+?(省|自治区))?(?<city>.+?市)(?<district>.+?(市|区|旗|县))?(?<street>.+?(乡|镇|街道))?#', $address, $info)
|| preg_match('#(?<province>.+?省)?(?<city>.+?(市|县))(?<district>.{2,16}?镇)(?<street>.+?县)?#', $address, $info)
|| preg_match('#(?<city>.+?市)(?<district>.+?(区|县))?(?<street>.+?(乡|街道))?#', $address, $info)
|| preg_match('#^(?<province>(香港|台湾|澳門|澳门))#', $address, $info)
){
if((!isset($info['province']) || empty($info['province'])) && isset($info['city']) && in_array($info['city'], ['北京市', '上海市', '天津市', '重庆市'])){
$info['province'] = $info['city'];
$info['city'] .= '市辖区';
}
$i = 0;
while(isset($info[$i])){
unset($info[$i]);
$i++;
}
return $info;
}
return false;
}