先我們來看看一段用php如何識別使用者是通過 PC、iPad 還是手機來訪問網站?
<?php
$uAgent = $_SERVER['HTTP_USER_AGENT'];
$osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|XWindow|ubuntu|Longhorn|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS\/2|OSF1|SUN";
if(preg_match("/($osPat)/i", $uAgent ))
{
echo "來著PC訪問";
}
else
{
echo "其他終端訪問";
}
?>
以下是騰訊的通過JS語句判斷WEB網站的訪問端是電腦還是手機
騰訊網的適配代碼
如何判斷訪問網站的機器類型-如何判斷ipad
JS 判斷瀏覽器用戶端類型(ipad,iphone,android)
<script type="text/javascript">
<!--
//平台、裝置和作業系統
var system = {
win: false,
mac: false,
xll: false,
ipad:false
};
//檢測平台
var p = navigator.platform;
system.win = p.indexOf("Win") == 0;
system.mac = p.indexOf("Mac") == 0;
system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
system.ipad = (navigator.userAgent.match(/iPad/i) != null)?true:false;
//跳躍陳述式,如果是手機訪問就自動跳轉到wap.baidu.com頁面
if (system.win || system.mac || system.xll||system.ipad) {
} else {
window.location.href = "http://www.jdpatro.com/3g/";
}
-->
</script>
騰訊網的適配代碼
<script type="text/javascript">
if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){
if(window.location.href.indexOf("?mobile")<0){
try{
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){
window.location.href="http://shipei.qq.com/index.htm";
}else if(/iPad/i.test(navigator.userAgent)){
}else{
window.location.href="http://shipei.qq.com/simple/s/index/"
}
}catch(e){}
}
}
</script>
<script type="text/javascript">
var browser = {
versions : function() {
var u = navigator.userAgent, app = navigator.appVersion;
return {//移動終端瀏覽器版本資訊
trident : u.indexOf('Trident') > -1, //IE核心
presto : u.indexOf('Presto') > -1, //opera核心
webKit : u.indexOf('AppleWebKit') > -1, //蘋果、Google核心
gecko : u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //Firefox核心
mobile : !!u.match(/AppleWebKit.*Mobile.*/)
|| !!u.match(/AppleWebKit/), //是否為移動終端
ios : !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios終端
android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android終端或者uc瀏覽器
iPhone : u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否為iPhone或者QQHD瀏覽器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp : u.indexOf('Safari') == -1,//是否web應該程式,沒有頭部與底部
google:u.indexOf('Chrome')>-1
};
}(),
language : (navigator.browserLanguage || navigator.language).toLowerCase()
}
document.writeln("語言版本: "+browser.language);
document.writeln(" 是否為移動終端: "+browser.versions.mobile);
</script>
如何判斷訪問網站的機器類型-如何判斷ipad
如何判斷是否是 iPad 瀏覽器呢,關鍵是看它的 User Agent 中是否有 iPad。iPad 使用的是 Safari Mobile 瀏覽器,他的的 User Agent 是:
Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10
function is_iPad(){
[object Object] [object Object] [object Object]var ua = navigator.userAgent.toLowerCase();
[object Object] [object Object] [object Object]if(ua.match(/iPad/i)=="ipad") {
[object Object] [object Object] [object Object] [object Object] [object Object] [object Object]return true;
[object Object] [object Object] [object Object]} else {
[object Object] [object Object] [object Object] [object Object] [object Object] [object Object]return false;
[object Object] [object Object] [object Object]}
}
$is_iPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');
RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
RewriteRule ^(.*)$ http://ipad.fairyfish.net [R=301]
JS 判斷瀏覽器用戶端類型(ipad,iphone,android)
<script type="text/javascript">
var bForcepc
= fGetQuery("dv") == "pc";
function
fBrowserRedirect(){
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) ==
"ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows
mobile";
if(bIsIpad){
var sUrl =
location.href;
if(!bForcepc){
window.location.href = "http://ipad.mail.163.com/";
}
}
if(bIsIphoneOs || bIsAndroid){
var sUrl =
location.href;
if(!bForcepc){
window.location.href = "http://smart.mail.163.com/";
}
}
if(bIsMidp||bIsUc7||bIsUc||bIsCE||bIsWM){
var sUrl =
location.href;
if(!bForcepc){
window.location.href = "http://m.mail.163.com/";
}
}
}
function
fGetQuery(name){//擷取參數值
var sUrl = window.location.search.substr(1);
var r = sUrl.match(new RegExp("(^|&)" + name +
"=([^&]*)(&|$)"));
return (r == null ? null : (r[2]));
}
function
fShowVerBlock(){
if(bForcepc){
document.getElementByIdx_x("dv_block").style.display = "block";
}
else{
document.getElementByIdx_x("ad_block").style.display = "block";
}
}
fBrowserRedirect();
</script>