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 "地址解析完整!";
}