php智慧型識別收貨位址資訊

2021-08-30 19:28:08 字數 2786 閱讀 2495

效果圖:

**:

<?php 

class distinguishaddress

}// ****-優先匹配**

if(preg_match('/1\d/', $address, $mobiles)) else if(preg_match('/(\d-)?\d/', $address, $mobiles))

// 識別姓名-必須空格分享的--概率

preg_match_all('/[\x-\x]/iu', $address,$names);

if($names)%' or ";}}

if(!empty($name_where)) order by sort desc";

$list = db::getinstance('dbtrade')->getall($names_sql);

// 統計有多少種可能性-姓名

$result['name_num'] = count($list);

if($list) }}

}}// 去掉詳細裡面的姓名和**

$result['info'] = str_replace($result['mobile'], '', $result['info']);

$result['info'] = str_replace($result['name'], '', $result['info']);

$result['info'] = $result['province']['region_name'] . $result['city']['region_name'] . $result['district']['region_name'] . $result['info'];

return $this->getcitylevellist($result);

}/**

* 獲取對應城市等級列表

*/function getcitylevellist($result)

}// 獲取城市列表- 只有存在值才返回對應列表

$city_id = $result['city']['region_id'];

if ($city_id)

}// 獲取地區列表- 只有存在值才返回對應列表

$district_id = $result['district']['region_id'];

if ($district_id)

}return $result;

}/**

* 獲取所有位址遞迴列表

*/function getregiontreelist() else

return $regions;

}/**

* 第一種方法

* 根據位址列表遞迴查詢準確位址

* @param $address

* @return array

*/function getaddressarrar($address)

}return $this->getaddressinfo($address, $province, $city, $district);

}/**

* 根據原位址返回詳細資訊

* @param $address

* @param $province

* @param $city

* @param $area

* @return array

*/function getaddressinfo($address, $province, $city, $district)}}

// 擷取詳細的資訊

$find_str_len = mb_strlen($find_str,'utf-8');

for($i=0; $i

}!empty($find_str) && $find_str = '|\s*' . $find_str;

$area['info'] = preg_replace("/\s*|,|,|:|:/i", '', $address);

$level = 0;

if($district['region_name']) else if($city['region_name']) else if ($province['region_name'])

return array(

'province' => array('region_id'=>$province['region_id'], 'region_name'=>$province['region_name']),

'city' => array('region_id'=>$city['region_id'], 'region_name'=>$city['region_name']),

'district' => array('region_id'=>$district['region_id'], 'region_name'=>$district['region_name']),

'info' => $area['info'],

'level' => $level,

);}/**

* 遞迴所有位址成無限分類陣列

* @param $data

* @param int $region_id

* @return array

*/function arraykey($data, $region_id=1)

}return $result;}}

?>

智慧型識別收貨位址

專案位址入口 當初接到這個需求的時候幾乎沒啥思路,那麼怎麼辦呢 果斷去上廁所,完了之後思路就有了。如果不信不妨去試上一試,效果賊好 開發前問題 首先需要明確要把目標字串拆分成幾部分 拆分的優先順序這個是關鍵 拆除詳細位址這是難點,相比拆分省市區難度係數要高很多 如果精確拆分名字也是難點,假如給定的目...

php 解析收貨人資訊 提取 收貨人 位址 電話

實現思路 php 例項說明 address address addressarr getdetail address echo print r addressarr function getdetail string address address 3.去除手機號碼中的短橫線 如136 3333 6...

PHP 收貨位址 新增 修改 刪除

1 網上 收貨位址是必不可少的,這裡大概寫一下用php實現收貨位址的新增 修改 刪除 2 tips,主要處理收貨位址是否是預設位址,預設位址規則如下 create table address id int 11 notnull auto increment comment 主鍵自增 userid i...