php实现智能解析收货地址拆分地址字符串为数组代码
代码语言:php
所属分类:其他
代码描述:php实现智能解析收货地址拆分地址字符串为数组代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<?php /** * 此过程不需要查询数据库,是纯PHP */ class Address { /** * 地址智能解析 * @param string 包含丰富信息的字符串 * @return array 姓名,手机号,邮编,详细地址 */ public static function smart_parse($address) { //解析结果 $parse = []; $parse['name'] = ''; $parse['mobile'] = ''; $parse['postcode'] = ''; $parse['idno'] = ''; $parse['detail'] = ''; //1. 过滤掉收货地址中的常用说明字符,排除干扰词 $search = ['收货地址', '地址', '收货人', '收件人', '收货', '邮编', '电话', '身份证号码', '身份证号', '身份证', ':', ':', ';', ';', ',', ',', '。', ]; $replace = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']; $address = str_replace($search, $replace, $address); //2. 连续2个或多个空格替换成一个空格 $address = preg_replace('/ {2,}/', ' ', $address); //3. 去除手机号码中的短横线 如136-3333-6666 主要针对苹果手机 $address = preg_replace('/(\d{3})-(\d{4})-(\d{4})/', '$1$2$3', $address); //4. 提取中国境内身份证号码 preg_match('/\d{18}|\d{17}X/i', $address, $match); if ($match && $match[0]) { $parse['idno'] = strtoupper($match[0]); $address = str_replace($match[0], '', $address); } //5. 提取11位手机号码或者7位以上座机号 preg_match('/\d{7,11}|\d{3,4}-\d{6,8}/', $address, $match); if ($match && $match[0]) { $parse['mobile'] = $match[0]; $address = str_replace($match[0], '', $addre.........完整代码请登录后点击上方下载按钮下载查看
网友评论0