在php中,我执行以下操作
$first=trim(substr(trim($postcode),0,-3));
获取邮政编码的第一部分。 我已经使用它多年了,它很有效。 不管用户是否在中间包括空格(或2个空格),因为最后一部分始终是3个字符。 我在一家分销公司工作,我们需要支付更多费用来送达某些邮政编码区域。 如果有人输入他们的邮政编码不正确,您将会面临问题,如果他们从末尾省略一个字符。
如果以上方法不够好。
您可以验证用户提供的邮政编码是否有效,然后http://postcodes.io/ 可以帮助您。
http://api.postcodes.io/postcodes/W11%202AQ
将返回一些JSON,其中包含邮政编码的有效性。
{
"status": 200,
"result": {
"postcode": "W11 2AQ",
"quality": 1,
"eastings": 524990,
"northings": 181250,
"country": "England",
"nhs_ha": "London",
"longitude": -0.200056238526337,
"latitude": 51.5163540527233,
"parliamentary_constituency": "Kensington",
"european_electoral_region": "London",
"primary_care_trust": "Kensington and Chelsea",
"region": "London",
"lsoa": "Kensington and Chelsea 004A",
"msoa": "Kensington and Chelsea 004",
"nuts": "Colville",
"incode": "2AQ",
"outcode": "W11",
"admin_district": "Kensington and Chelsea",
"parish": "Kensington and Chelsea, unparished area",
"admin_county": null,
"admin_ward": "Colville",
"ccg": "NHS West London (Kensington and Chelsea, Queenís Park and Paddington)",
"codes": {
"admin_district": "E09000020",
"admin_county": "E99999999",
"admin_ward": "E05009392",
"parish": "E43000210",
"ccg": "E38000202"
}
}
}
JSON的一部分是"outcode": "W11"
,我认为这正是您要寻找的。
您还可以使用“eastings”:524990,“northings”:181250字段来计算从餐厅到用户的直线距离。单位为米。使用勾股定理。