template design by http://www.20shx.com/
时间:2014-03-02 发布人:SHX 浏览次数:7097 评论:0
在做网站时,有的时候会做手机版的网站,这当用户访问网站的时候,我们网站需要一个判断,判断用户是用的什么样的设备(手机还是电脑)。如果是电脑就继续访问网站,如果是手机就跳到另一个地址访问手机网站。
下面用PHP写了一个函数来判断访问的用户用的是什么设备
function isMobile() {
// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) {
return true;
}
//如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
if (isset ($_SERVER['HTTP_VIA'])) {
//找不到为flase,否则为true
return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
}
//脑残法,判断手机发送的客户端标志,兼容性有待提高
if (isset ($_SERVER['HTTP_USER_AGENT'])) {
$clientkeywords = array (
'nokia',
'sony',
'ericsson',
'mot',
'samsung',
'htc',
'sgh',
'lg',
'sharp',
'sie-',
'philips',
'panasonic',
'alcatel',
'lenovo',
'iphone',
'ipod',
'blackberry',
'meizu',
'android',
'netfront',
'symbian',
'ucweb',
'windowsce',
'palm',
'operamini',
'operamobi',
'openwave',
'nexusone',
'cldc',
'midp',
'wap',
'mobile'
);
// 从HTTP_USER_AGENT中查找手机浏览器的关键字
if (preg_match("/(" . implode('|', $clientkeywords) . ")/i",
strtolower($_SERVER['HTTP_USER_AGENT']))) {
return true;
}
}
//协议法,因为有可能不准确,放到最后判断
if (isset ($_SERVER['HTTP_ACCEPT'])) {
// 如果只支持wml并且不支持html那一定是移动设备
// 如果支持wml和html但是wml在html之前则是移动设备
if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false)
&& (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false ||
(strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') <
strpos($_SERVER['HTTP_ACCEPT'],
'text/html')))) {
return true;
}
}
return false;
}下面这个函数也可以试试看
function is_mobile() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$mobile_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_mobile = false;
foreach ($mobile_agents as $device) {
if (stristr($user_agent, $device)) {
$is_mobile = true;
break;
}
}
return $is_mobile;
}
上一篇:技术宅不会表白伤不起啊下一篇:网页制作小工具合集