大(dà)家可(kě)以嘗試一下用手機(jī)訪問(wèn)我公司官方網站(zhàn)(www.chuangluo.com),系統會自(zì)動識别并跳(tiào)轉到手機(jī)版網站(zhàn)去(qù);同樣的,如(rú)果使用電腦訪問(wèn)手機(jī)版網站(zhàn)(m.chuangluo.com),系統也會自(zì)動識别并跳(tiào)轉到對應的電腦版網址去(qù)。目前已經有很多同時擁有手機(jī)版網站(zhàn)和電腦版網站(zhàn)的大(dà)型企業網站(zhàn)使用了這樣的技術(shù),那小型公司網站(zhàn)如(rú)果也有這種需求的話(huà),應該如(rú)何實現呢(ne)?
實現手機(jī)版網站(zhàn)和電腦版網站(zhàn)的自(zì)動識别并跳(tiào)轉的條件(jiàn)
首先肯定是需要有兩個不同版本的網站(zhàn),這是必然的!第二個條件(jiàn)是這兩個版本的網站(zhàn)數據要基本同步。以我公司官方網站(zhàn)爲例,電腦版網站(zhàn)的頁面比手機(jī)版的多,手機(jī)版有的頁面,電腦版全部都(dōu)有。這是因爲我們電腦版網站(zhàn)上有很多靜(jìng)态的專題頁,而手機(jī)版則沒有,例如(rú):網站(zhàn)價格評估、域名查詢等。因此,我們隻需要實現自(zì)動識别這一部分(fēn)頁面并跳(tiào)轉即可(kě)。
如(rú)何實現自(zì)動識别并跳(tiào)轉
由于我公司目前開發網站(zhàn)的語言是主流的PHP,因此我們此處隻討(tǎo)論PHP的實現方法,其他(tā)語言請(qǐng)直接參考本方法稍作(zuò)修改即可(kě)。核心原理(lǐ)是通過程序判斷$_SERVER[?HTTP_USER_AGENT?]中是否包含了手機(jī)訪問(wèn)的一些特征信息,例如(rú)屏幕尺寸,手機(jī)品牌或者其他(tā)特征信息。此處一提供兩個方法供大(dà)家參考:
方法一:
判斷函數
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"]取出具體(tǐ)頁面網址,修改域名後并跳(tiào)轉。
}
方法二:
$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"]取出具體(tǐ)頁面網址,修改域名後并跳(tiào)轉。
}
兩種方法中推薦使用第一種,識别率相(xiàng)對較高;第二種效率更高,但(dàn)識别率相(xiàng)對較低。兩種方法均整理(lǐ)自(zì)互聯網,大(dà)家在使用的時候可(kě)以稍加修改,以實現更多功能。