Skip to content

Commit 7a92648

Browse files
committed
增加外部数据源入参
1 parent 4c25330 commit 7a92648

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

src/AddressParser.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,19 @@ class AddressParser
1212
* 解析地址
1313
* @param mixed $string 地址信息
1414
* @param bool $user 信息中是否包含用户信息
15+
* @param string $unknownValue 未匹配到数据时填充内容
16+
* @param array $level1Data 一级行政区(省)数据(不传递则使用默认数据源)
17+
* @param array $level2Data 二级行政区(市)数据(不传递则使用默认数据源)
18+
* @param array $level3Data 三级行政区(区/县)数据(不传递则使用默认数据源)
1519
*
1620
* @return array {name: string, mobile: string, idn: string, postcode: string, province: string, city: string, region: string, street: string}
21+
*
22+
* 说明:
23+
* - 省市区数据源来自 \Hejunjie\ChinaDivision\Division::getCityLevels()
24+
* - 格式为:['id'=>['name'=>'城市名称','pid'=>'上级ID,省级为0']]
25+
* - 详见:https://github.com/zxc7563598/php-china-division
1726
*/
18-
public static function parse(string $string, bool $user = true)
27+
public static function parse(string $string, bool $user = true, $unknownValue = '未知', array $level1Data = [], array $level2Data = [], array $level3Data = [])
1928
{
2029
// 默认数据
2130
$data = [
@@ -42,7 +51,7 @@ public static function parse(string $string, bool $user = true)
4251
$addr = $string;
4352
}
4453
// 解析地址
45-
$address = RegionMatcher::parseAddress($addr);
54+
$address = RegionMatcher::parseAddress($addr, $unknownValue, $level1Data, $level2Data, $level3Data);
4655
// 更新地址信息
4756
$data['province'] = $address['province'];
4857
$data['city'] = $address['city'];

src/Support/RegionMatcher.php

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,11 @@ class RegionMatcher
1111
*
1212
* @param string $addr 需要解析的地址信息
1313
* @param string $unknownValue 未匹配到数据时填充内容
14-
* @param array $level1Data 一级行政区(省)数据(不传递则使用默认数据源)
15-
* @param array $level2Data 二级行政区(市)数据(不传递则使用默认数据源)
16-
* @param array $level3Data 三级行政区(区/县)数据(不传递则使用默认数据源)
14+
* @param array $level1Data 一级行政区(省)数据
15+
* @param array $level2Data 二级行政区(市)数据
16+
* @param array $level3Data 三级行政区(区/县)数据
1717
*
1818
* @return array
19-
*
20-
* 说明:
21-
* - 数据源来自 \Hejunjie\ChinaDivision\Division::getCityLevels()
22-
* - 格式为:['id'=>['name'=>'城市名称','pid'=>'上级ID,省级为0']]
23-
* - 详见:https://github.com/zxc7563598/php-china-division
2419
*/
2520
public static function parseAddress(string $addr, string $unknownValue = '未知', array $level1Data = [], array $level2Data = [], array $level3Data = []): array
2621
{

0 commit comments

Comments
 (0)