大家可以嘗試一下用手機訪問我公司官方網站(www.598coin.com),系統會自動識別并跳轉到手機版網站去;同樣的,如果使用電腦訪問手機版網站(m.chuangluo.com),系統也會自動識別并跳轉到對應的電腦版網址去。目前已經有很多同時擁有手機版網站和電腦版網站的大型企業網站使用了這樣的技術,那小型公司網站如果也有這種需求的話,應該如何實現呢?
實現手機版網站和電腦版網站的自動識別并跳轉的條件
首先肯定是需要有兩個不同版本的網站,這是必然的!第二個條件是這兩個版本的網站數據要基本同步。以我公司官方網站為例,電腦版網站的頁面比手機版的多,手機版有的頁面,電腦版全部都有。這是因為我們電腦版網站上有很多靜態的專題頁,而手機版則沒有,例如:網站價格評估、域名查詢等。因此,我們只需要實現自動識別這一部分頁面并跳轉即可。
如何實現自動識別并跳轉
由于我公司目前開發網站的語言是主流的PHP,因此我們此處只討論PHP的實現方法,其他語言請直接參考本方法稍作修改即可。核心原理是通過程序判斷$_SERVER[?HTTP_USER_AGENT?]中是否包含了手機訪問的一些特征信息,例如屏幕尺寸,手機品牌或者其他特征信息。此處一提供兩個方法供大家參考:
方法一:
判斷函數
function is_mob() {
$user_agent = $_SERVER[?HTTP_USER_AGENT?];
$mob_agents = Array("240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi","android","anywhereyougo.com","applewebkit/525","applewebkit/532","asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry","blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine","eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig","haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod","jbrowser","kddi","kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp","mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian","nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic","pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover","sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp","siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout","tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar","verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii","windows ce","wireless","xda","xde","zte");
$is_mob = false;
foreach ($mob_agents as $device) {
if (stristr($user_agent, $device)) {
$is_mob = true;
break;
}
}
return $is_mob;
}
調用函數
if(is_mob())
{
//通過$_SERVER["REQUEST_URI"]取出具體頁面網址,修改域名后并跳轉。
}
方法二:
$ua = strtolower($_SERVER[?HTTP_USER_AGENT?]);
$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile)/i"
if(($ua == ?? || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER[?REQUEST_URI?]),?wap?))
{
//通過$_SERVER["REQUEST_URI"]取出具體頁面網址,修改域名后并跳轉。
}
兩種方法中推薦使用第一種,識別率相對較高;第二種效率更高,但識別率相對較低。兩種方法均整理自互聯網,大家在使用的時候可以稍加修改,以實現更多功能。