php 智能识别收货地址

27 篇文章 1 订阅
public function apiAnalysisPublic($analysis){

        $str = $analysis;
        $patt = '/1[2345678]\d{9}/';
        preg_match  ($patt,$str,$phone);
        if(empty($phone)){
            return 101;
        }
        $name = substr($str,0,strrpos($str,$phone[0]));
        if(empty($name)){
            return 101;
        }
        $address = substr($str,strripos($str,$phone[0])+11);
        $address_all = $address;
        if(empty($address_all)){
            return 101;
        }

//        $address = "马云13511111111河北省石家庄市桥西区富康路姚家园3楼0";
        preg_match('/(.*?(省|自治区|北京市|天津市))/', $address, $matches);
        if (count($matches) > 1) {
            $province = $matches[count($matches) - 2];
            $address = str_replace($province, '', $address);
        }
        preg_match('/(.*?(市|自治州|地区|区划|县))/', $address, $matches);
        if (count($matches) > 1) {
            $city = $matches[count($matches) - 2];
            $address = str_replace($city, '', $address);
        }
        preg_match('/(.*?(区|县|镇|乡|街道))/', $address, $matches);
        if (count($matches) > 1) {
            $area = $matches[count($matches) - 2];
            $address = str_replace($area, '', $address);
        }
        $conurbation = [
            'province' => isset($province) ? trim($province) : '',
            'city' => isset($city) ? trim($city) : '',
            'area' => isset($area) ? trim($area) : '',
        ];
        if(empty($conurbation['province'])){
            $conurbation['province'] = $conurbation['city'];
        }
        if(empty($conurbation['city'])){
            $conurbation['city'] = $conurbation['province'];
        }
        if(empty($conurbation['province']) || empty($conurbation['city']) || empty($conurbation['area'])){
            return 101;
        }
        /*查找自己数据库中的省id*/
        $chinaProvinceModel = new ChinaProvince;
        $province_id = $chinaProvinceModel->findOne(['name'=>['like','%'.$conurbation['province'].'%']],'id');
        /*查找自己数据库中市id*/
        $chinaCityModel = new ChinaCity;
        $city_id = $chinaCityModel->findOne(['name'=>['like','%'.$conurbation['city'].'%']],'id');
        /*查找自己数据库中县区id*/
        $chinaCityModel = new ChinaArea;
        $area_id = $chinaCityModel->findOne(['name'=>['like','%'.$conurbation['area'].'%']],'id');

        if(empty($province_id) || empty($city_id) || empty($area_id)){
            return 101;
        }

        $data = [
            'province_id'=>$province_id,
            'city_id'=>$city_id,
            'area_id'=>$area_id,
            'province'=>$conurbation['province'],
            'city'=>$conurbation['city'],
            'area'=>$conurbation['area'],
            'name'=>trim($name),
            'phone'=>trim($phone[0]),
            'address'=>trim($address_all),
        ];
        return $data;
    }

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昊喵喵博士

大哥你真帅,小姐姐你真漂亮

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值