效果圖:
**:
<?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...