|
1
|
|
|
<?php |
|
2
|
|
|
/** |
|
3
|
|
|
* Regional.php |
|
4
|
|
|
* |
|
5
|
|
|
* Part of Overtrue\Wechat. |
|
6
|
|
|
* |
|
7
|
|
|
* For the full copyright and license information, please view the LICENSE |
|
8
|
|
|
* file that was distributed with this source code. |
|
9
|
|
|
* |
|
10
|
|
|
* @author a939638621 <[email protected]> |
|
11
|
|
|
* @copyright 2015 a939638621 <[email protected]> |
|
12
|
|
|
* @link https://github.com/a939638621 |
|
13
|
|
|
*/ |
|
14
|
|
|
|
|
15
|
|
|
namespace Overtrue\Wechat\Shop\Data; |
|
16
|
|
|
|
|
17
|
|
|
|
|
18
|
|
|
/** |
|
19
|
|
|
* 三级区域划分 |
|
20
|
|
|
* |
|
21
|
|
|
* Class Regional |
|
22
|
|
|
* @package Shop |
|
23
|
|
|
*/ |
|
24
|
|
|
class Regional |
|
25
|
|
|
{ |
|
26
|
|
|
private $data = array( |
|
27
|
|
|
'Country' => array( |
|
28
|
|
|
array( |
|
29
|
|
|
'name' => '中国', |
|
30
|
|
|
'Province' => array( |
|
31
|
|
|
array( |
|
32
|
|
|
'name' => '北京市', |
|
33
|
|
|
'City' =>array( |
|
34
|
|
|
'北京市' |
|
35
|
|
|
) |
|
36
|
|
|
), |
|
37
|
|
|
array( |
|
38
|
|
|
'name' => '天津市', |
|
39
|
|
|
'City' =>array( |
|
40
|
|
|
'天津市' |
|
41
|
|
|
) |
|
42
|
|
|
), |
|
43
|
|
|
array( |
|
44
|
|
|
'name' => '河北省', |
|
45
|
|
|
'City' =>array( |
|
46
|
|
|
'石家庄市', '唐山市', '秦皇岛市', '邯郸市', '邢台市', |
|
47
|
|
|
'保定市', '张家口市', '承德市', '沧州市', '廊坊市', |
|
48
|
|
|
'衡水市' |
|
49
|
|
|
) |
|
50
|
|
|
), |
|
51
|
|
|
array( |
|
52
|
|
|
'name' => '山西省', |
|
53
|
|
|
'City' =>array( |
|
54
|
|
|
'太原市', '大同市', '阳泉市', '长治市', '晋城市','朔州市', |
|
55
|
|
|
'晋中市', '运城市', '忻州市', '临汾市','吕梁市' |
|
56
|
|
|
) |
|
57
|
|
|
), |
|
58
|
|
|
array( |
|
59
|
|
|
'name' => '内蒙古自治区', |
|
60
|
|
|
'City' =>array( |
|
61
|
|
|
'呼和浩特市','包头市','乌海市','赤峰市','通辽市','鄂尔多斯市','呼伦贝尔市','巴彦淖尔市', |
|
62
|
|
|
'乌兰察布市','兴安盟','锡林郭勒盟','阿拉善盟' |
|
63
|
|
|
) |
|
64
|
|
|
), |
|
65
|
|
|
array( |
|
66
|
|
|
'name' => '辽宁省', |
|
67
|
|
|
'City' =>array( |
|
68
|
|
|
'沈阳市','大连市','鞍山市','抚顺市','本溪市','丹东市','锦州市','营口市','阜新市','辽阳市', |
|
69
|
|
|
'盘锦市','铁岭市','朝阳市','葫芦岛市' |
|
70
|
|
|
) |
|
71
|
|
|
), |
|
72
|
|
|
array( |
|
73
|
|
|
'name' => '吉林省', |
|
74
|
|
|
'City' =>array( |
|
75
|
|
|
'长春市','吉林市','四平市','辽源市','通化市','白山市','松原市','白城市','延边朝鲜族自治州' |
|
76
|
|
|
) |
|
77
|
|
|
), |
|
78
|
|
|
array( |
|
79
|
|
|
'name' => '黑龙江省', |
|
80
|
|
|
'City' =>array( |
|
81
|
|
|
'哈尔滨市','齐齐哈尔市','鸡西市','鹤岗市','双鸭山市','大庆市','伊春市','佳木斯市','七台河市', |
|
82
|
|
|
'牡丹江市','黑河市','绥化市','大兴安岭地区' |
|
83
|
|
|
) |
|
84
|
|
|
), |
|
85
|
|
|
array( |
|
86
|
|
|
'name' => '上海市', |
|
87
|
|
|
'City' =>array( |
|
88
|
|
|
'上海市' |
|
89
|
|
|
) |
|
90
|
|
|
), |
|
91
|
|
|
array( |
|
92
|
|
|
'name' => '江苏省', |
|
93
|
|
|
'City' =>array( |
|
94
|
|
|
'南京市','无锡市','徐州市','常州市','苏州市','南通市','连云港市','淮安市','盐城市','扬州市', |
|
95
|
|
|
'镇江市','泰州市','宿迁市' |
|
96
|
|
|
) |
|
97
|
|
|
), |
|
98
|
|
|
array( |
|
99
|
|
|
'name' => '浙江省', |
|
100
|
|
|
'City' =>array( |
|
101
|
|
|
'杭州市','宁波市','温州市','嘉兴市','湖州市','绍兴市','金华市','衢州市','舟山市','台州市', |
|
102
|
|
|
'丽水市' |
|
103
|
|
|
) |
|
104
|
|
|
), |
|
105
|
|
|
array( |
|
106
|
|
|
'name' => '安徽省', |
|
107
|
|
|
'City' =>array( |
|
108
|
|
|
'合肥市','芜湖市','蚌埠市','淮南市','马鞍山市','淮北市','铜陵市','安庆市','黄山市','滁州市', |
|
109
|
|
|
'阜阳市','宿州市','六安市','亳州市','池州市','宣城市' |
|
110
|
|
|
) |
|
111
|
|
|
), |
|
112
|
|
|
array( |
|
113
|
|
|
'name' => '福建省', |
|
114
|
|
|
'City' =>array( |
|
115
|
|
|
'福州市','厦门市','莆田市','三明市','泉州市','漳州市','南平市','龙岩市','宁德市' |
|
116
|
|
|
) |
|
117
|
|
|
), |
|
118
|
|
|
array( |
|
119
|
|
|
'name' => '江西省', |
|
120
|
|
|
'City' =>array( |
|
121
|
|
|
'南昌市','景德镇市','萍乡市','九江市','新余市','鹰潭市','赣州市','吉安市','宜春市', |
|
122
|
|
|
'抚州市','上饶市' |
|
123
|
|
|
) |
|
124
|
|
|
), |
|
125
|
|
|
array( |
|
126
|
|
|
'name' => '山东省', |
|
127
|
|
|
'City' =>array( |
|
128
|
|
|
'济南市','青岛市','淄博市','枣庄市','东营市','烟台市','潍坊市','济宁市','泰安市','威海市', |
|
129
|
|
|
'日照市','莱芜市','临沂市','德州市','聊城市','滨州市','菏泽市' |
|
130
|
|
|
) |
|
131
|
|
|
), |
|
132
|
|
|
array( |
|
133
|
|
|
'name' => '河南省', |
|
134
|
|
|
'City' =>array( |
|
135
|
|
|
'郑州市','开封市','洛阳市','平顶山市','安阳市','鹤壁市','新乡市','焦作市','濮阳市', |
|
136
|
|
|
'许昌市','漯河市','三门峡市','南阳市','商丘市','信阳市','周口市','驻马店市','省直辖县级行政区划' |
|
137
|
|
|
) |
|
138
|
|
|
), |
|
139
|
|
|
array( |
|
140
|
|
|
'name' => '湖北省', |
|
141
|
|
|
'City' =>array( |
|
142
|
|
|
'武汉市','黄石市','十堰市','宜昌市','襄阳市','鄂州市','荆门市','孝感市','荆州市','黄冈市', |
|
143
|
|
|
'咸宁市','随州市','恩施土家族苗族自治州','省直辖县级行政区划' |
|
144
|
|
|
) |
|
145
|
|
|
), |
|
146
|
|
|
array( |
|
147
|
|
|
'name' => '湖南省', |
|
148
|
|
|
'City' =>array( |
|
149
|
|
|
'长沙市','株洲市','湘潭市','衡阳市','邵阳市','岳阳市','常德市','张家界市','益阳市','郴州市', |
|
150
|
|
|
'永州市','怀化市','娄底市','湘西土家族苗族自治州' |
|
151
|
|
|
) |
|
152
|
|
|
), |
|
153
|
|
|
array( |
|
154
|
|
|
'name' => '广东省', |
|
155
|
|
|
'City' =>array( |
|
156
|
|
|
'广州市','韶关市','深圳市','珠海市','汕头市','佛山市','江门市','湛江市','茂名市','肇庆市', |
|
157
|
|
|
'惠州市','梅州市','汕尾市','河源市','阳江市','清远市','东莞市','中山市','潮州市','揭阳市','云浮市' |
|
158
|
|
|
) |
|
159
|
|
|
), |
|
160
|
|
|
array( |
|
161
|
|
|
'name' => '广西壮族自治区', |
|
162
|
|
|
'City' =>array( |
|
163
|
|
|
'南宁市','柳州市','桂林市','梧州市','北海市','防城港市','钦州市','贵港市','玉林市','百色市', |
|
164
|
|
|
'贺州市','河池市','来宾市','崇左市' |
|
165
|
|
|
) |
|
166
|
|
|
), |
|
167
|
|
|
array( |
|
168
|
|
|
'name' => '海南省', |
|
169
|
|
|
'City' =>array( |
|
170
|
|
|
'海口市','三亚市','三沙市','省直辖县级行政区划' |
|
171
|
|
|
) |
|
172
|
|
|
), |
|
173
|
|
|
array( |
|
174
|
|
|
'name' => '重庆市', |
|
175
|
|
|
'City' =>array( |
|
176
|
|
|
'重庆市' |
|
177
|
|
|
) |
|
178
|
|
|
), |
|
179
|
|
|
array( |
|
180
|
|
|
'name' => '四川省', |
|
181
|
|
|
'City' =>array( |
|
182
|
|
|
'成都市','自贡市','攀枝花市','泸州市','德阳市','绵阳市','广元市','遂宁市','内江市','乐山市', |
|
183
|
|
|
'南充市','眉山市','宜宾市','广安市','达州市','雅安市','巴中市','资阳市','阿坝藏族羌族自治州', |
|
184
|
|
|
'甘孜藏族自治州','凉山彝族自治州' |
|
185
|
|
|
) |
|
186
|
|
|
), |
|
187
|
|
|
array( |
|
188
|
|
|
'name' => '贵州省', |
|
189
|
|
|
'City' =>array( |
|
190
|
|
|
'贵阳市','六盘水市','遵义市','安顺市','毕节市','铜仁市','黔西南布依族苗族自治州', |
|
191
|
|
|
'黔东南苗族侗族自治州','黔南布依族苗族自治州', |
|
192
|
|
|
) |
|
193
|
|
|
), |
|
194
|
|
|
array( |
|
195
|
|
|
'name' => '云南省', |
|
196
|
|
|
'City' =>array( |
|
197
|
|
|
'昆明市','曲靖市','玉溪市','保山市','昭通市','丽江市','普洱市','临沧市','楚雄彝族自治州', |
|
198
|
|
|
'红河哈尼族彝族自治州','文山壮族苗族自治州','西双版纳傣族自治州','大理白族自治州', |
|
199
|
|
|
'德宏傣族景颇族自治州','怒江傈僳族自治州','迪庆藏族自治州' |
|
200
|
|
|
) |
|
201
|
|
|
), |
|
202
|
|
|
array( |
|
203
|
|
|
'name' => '西藏自治区', |
|
204
|
|
|
'City' =>array( |
|
205
|
|
|
'拉萨市','昌都地区','山南地区','日喀则地区','那曲地区','阿里地区','林芝地区' |
|
206
|
|
|
) |
|
207
|
|
|
), |
|
208
|
|
|
array( |
|
209
|
|
|
'name' => '陕西省', |
|
210
|
|
|
'City' =>array( |
|
211
|
|
|
'西安市','铜川市','宝鸡市','咸阳市','渭南市','延安市','汉中市','榆林市','安康市','商洛市' |
|
212
|
|
|
) |
|
213
|
|
|
), |
|
214
|
|
|
array( |
|
215
|
|
|
'name' => '甘肃省', |
|
216
|
|
|
'City' =>array( |
|
217
|
|
|
'兰州市','嘉峪关市','白银市','武威市','张掖市','平凉市','酒泉市','庆阳市','定西市','陇南市', |
|
218
|
|
|
'临夏回族自治州','甘南藏族自治州' |
|
219
|
|
|
) |
|
220
|
|
|
), |
|
221
|
|
|
array( |
|
222
|
|
|
'name' => '青海省', |
|
223
|
|
|
'City' =>array( |
|
224
|
|
|
'西宁市','海东地区','海北藏族自治州','黄南藏族自治州','海南藏族自治州','果洛藏族自治州', |
|
225
|
|
|
'海西蒙古族藏族自治州','玉树藏族自治州' |
|
226
|
|
|
) |
|
227
|
|
|
), |
|
228
|
|
|
array( |
|
229
|
|
|
'name' => '宁夏回族自治区', |
|
230
|
|
|
'City' =>array( |
|
231
|
|
|
'银川市','石嘴山市','吴忠市','固原市','中卫市' |
|
232
|
|
|
) |
|
233
|
|
|
), |
|
234
|
|
|
array( |
|
235
|
|
|
'name' => '新疆维吾尔自治区', |
|
236
|
|
|
'City' =>array( |
|
237
|
|
|
'乌鲁木齐市','克拉玛依市','吐鲁番地区','哈密地区','昌吉回族自治州','博尔塔拉蒙古自治州', |
|
238
|
|
|
'巴音郭楞蒙古自治州','阿克苏地区','克孜勒苏柯尔克孜自治州','喀什地区','和田地区', |
|
239
|
|
|
'伊犁哈萨克自治州','塔城地区','阿勒泰地区','自治区直辖县级行政区划' |
|
240
|
|
|
) |
|
241
|
|
|
), |
|
242
|
|
|
) |
|
243
|
|
|
) |
|
244
|
|
|
), |
|
245
|
|
|
); |
|
246
|
|
|
|
|
247
|
|
|
/** |
|
248
|
|
|
* 获得国家,省份,地级市 |
|
249
|
|
|
* |
|
250
|
|
|
* @param string $type |
|
251
|
|
|
* @param string $country |
|
252
|
|
|
* @param null $province |
|
253
|
|
|
* @return array |
|
254
|
|
|
*/ |
|
255
|
|
|
private function get($type = 'Country', $country = '中国', $province = null) |
|
256
|
|
|
{ |
|
257
|
|
|
$data = array(); |
|
258
|
|
|
|
|
259
|
|
|
foreach ($this->data['Country'] as $k => $countrys) { |
|
260
|
|
|
|
|
261
|
|
|
if ($type == 'Country') { |
|
262
|
|
|
$data[] = $countrys['name']; |
|
263
|
|
|
continue; |
|
264
|
|
|
} |
|
265
|
|
|
|
|
266
|
|
|
if ($countrys['name'] == $country) { |
|
267
|
|
|
|
|
268
|
|
|
foreach ($countrys['Province'] as $provinces) { |
|
269
|
|
|
|
|
270
|
|
|
if ($type == 'Province') { |
|
271
|
|
|
$data[] = $provinces['name']; |
|
272
|
|
|
continue; |
|
273
|
|
|
} |
|
274
|
|
|
|
|
275
|
|
|
$province = is_array($province) ? $province : array($province) ; |
|
276
|
|
|
|
|
277
|
|
|
if ((empty($province) || !$province) && $type == 'City') { |
|
|
|
|
|
|
278
|
|
|
if ($provinces['name'] == $province) { |
|
279
|
|
|
|
|
280
|
|
|
return $provinces['City']; |
|
281
|
|
|
|
|
282
|
|
|
} |
|
283
|
|
|
} else { |
|
284
|
|
|
|
|
285
|
|
|
foreach ($province as $v) { |
|
286
|
|
|
|
|
287
|
|
|
if ($provinces['name'] == $v) $data[] = $provinces['City']; |
|
288
|
|
|
} |
|
289
|
|
|
} |
|
290
|
|
|
|
|
291
|
|
|
|
|
292
|
|
|
|
|
293
|
|
|
} |
|
294
|
|
|
} |
|
295
|
|
|
} |
|
296
|
|
|
|
|
297
|
|
|
return $data; |
|
298
|
|
|
} |
|
299
|
|
|
|
|
300
|
|
|
/** |
|
301
|
|
|
* 获得国家 |
|
302
|
|
|
* |
|
303
|
|
|
* @return array |
|
304
|
|
|
*/ |
|
305
|
|
|
public function getCountry() |
|
306
|
|
|
{ |
|
307
|
|
|
return $this->get(); |
|
308
|
|
|
} |
|
309
|
|
|
|
|
310
|
|
|
/** |
|
311
|
|
|
* 获得省份 |
|
312
|
|
|
* |
|
313
|
|
|
* @param string $country |
|
314
|
|
|
* @return array |
|
315
|
|
|
*/ |
|
316
|
|
|
public function getProvince($country = '中国') |
|
317
|
|
|
{ |
|
318
|
|
|
return $this->get('Province',$country); |
|
319
|
|
|
} |
|
320
|
|
|
|
|
321
|
|
|
/** |
|
322
|
|
|
* 获得地级市 |
|
323
|
|
|
* |
|
324
|
|
|
* @param string|array $province 支持 , 数组 str 参数传入 |
|
325
|
|
|
* @param string $country |
|
326
|
|
|
* @return array |
|
327
|
|
|
*/ |
|
328
|
|
|
public function getCity($province,$country = '中国') |
|
329
|
|
|
{ |
|
330
|
|
|
return $this->get('City',$country,$province); |
|
|
|
|
|
|
331
|
|
|
} |
|
332
|
|
|
} |
This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.
Consider making the comparison explicit by using
empty(..)or! empty(...)instead.