PHP code example of glitter1105 / address-parser
1. Go to this page and download the library: Download glitter1105/address-parser library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
glitter1105 / address-parser example snippets
Glitter1105\AddressParser\AddressParser;
// 解析包含用户信息的完整地址
$result = AddressParser::parse('张三 13812345678 北京市朝阳区望京街道123号');
print_r($result);
/*
输出:
Array
(
[name] => 张三
[mobile] => 13812345678
[id] =>
[postcode] =>
[province] => 北京市
[city] => 北京市
[district] => 朝阳区
[street] => 望京街道123号
)
*/
// 如果不需要解析用户信息,可以设置第二个参数为 false
$result = AddressParser::parse('广东省深圳市南山区科技园南区', false);
print_r($result);
/*
输出:
Array
(
[name] =>
[mobile] =>
[id] =>
[postcode] =>
[province] => 广东省
[city] => 深圳市
[district] => 南山区
[street] => 科技园南区
)
*/
$address = '李四 15987654321 上海市浦东新区陆家嘴街道东方明珠塔';
$result = AddressParser::parse($address);
echo "姓名: {$result['name']}\n"; // 李四
echo "电话: {$result['mobile']}\n"; // 15987654321
echo "省份: {$result['province']}\n"; // 上海市
echo "城市: {$result['city']}\n"; // 上海市
echo "区域: {$result['district']}\n"; // 浦东新区
echo "街道: {$result['street']}\n"; // 陆家嘴街道东方明珠塔
$address = '王五 收货地址:四川省成都市武侯区 手机:13612345678 身份证:510101199001011234 邮编:610041';
$result = AddressParser::parse($address);
print_r($result);
/*
输出:
Array
(
[name] => 王五
[mobile] => 13612345678
[id] => 510101199001011234
[postcode] => 610041
[province] => 四川省
[city] => 成都市
[district] => 武侯区
[street] =>
)
*/
$address = '收货人:赵六,电话号码:021-12345678,详细地址:江苏省南京市玄武区中山路1号,邮政编码:210000';
$result = AddressParser::parse($address);
print_r($result);
$addresses = [
'张三 13812345678 北京市朝阳区望京街道123号',
'李四 15987654321 上海市浦东新区陆家嘴街道东方明珠塔',
'王五 13612345678 广东省深圳市南山区科技园南区深圳湾'
];
$results = [];
foreach ($addresses as $address) {
$results[] = AddressParser::parse($address);
}
// 输出所有解析结果
foreach ($results as $result) {
echo "姓名: {$result['name']}, 城市: {$result['city']}, 区域: {$result['district']}\n";
}
use Glitter1105\AddressParser\AddressParser;
use Glitter1105\AddressParser\Exceptions\InvalidArgumentException;
try {
$result = AddressParser::parse(''); // 空地址
} catch (InvalidArgumentException $e) {
echo "参数错误: " . $e->getMessage();
}
try {
$result = AddressParser::parse(null); // 无效类型
} catch (InvalidArgumentException $e) {
echo "参数类型错误: " . $e->getMessage();
}
// 检查解析结果的完整性
function validateParseResult($result) {
$
throw new Exception("缺少必需字段: {$field}");
}
}
return true;
}
$address = '张三 13812345678 北京市朝阳区望京街道123号';
$result = AddressParser::parse($address);
if (validateParseResult($result)) {
echo "地址解析完整!";
}