php判斷移動設備
A. PHP如何識別是電腦端或手機移動端訪問網站
用css來判斷當前頁面的寬度和高度,現在pc的解析度最低都在1200*768以上,iPad pro的寬度為1024px,當寬度大於1100px以上,都可以認為當前訪問端為pc,一般iPad的寬度為768px,iPhone X的寬度為375px;所以當寬度低於800以下的,都視為手機移動端,現在的pc和手機自適應頁面都是按照這個來區分的。
B. 怎麼讓網站自動識別設備,自動跳轉wap頁面
自動識別跳轉,主要有以下幾種方法可以嘗試:
1、在網站head標簽里加跳轉語句
要實現網站根據訪問設備自動識別展示手機站或PC站這個功能,需要以下幾個步驟:
(1)、你得有一個PC端,在電腦上訪問的官方網站,比如:www..com。
(2)、你需要重新製作一個移動端的手機網站,比如:m..com。
(3)、在PC端的網站上加上一段代碼,每個頁面都需要加上,放在PC端網站head標簽裡面,代碼如下:
//平台、設備和操作系統
var system = {
win: false,
mac: false,
xll: 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);
//跳轉語句
if (!(system.win || system.mac || system.xll)) {//轉向電腦界面
window.location.href = 「http://m..com」;
}
(4)、進入域名解析系統,做一個別名cname解析,比如:你手機網站製作公司給的地址123.域名.com解析到m..com域名解析系統。
2、根據移動終端和瀏覽器版本信息判定的語法
還有一些站長或SEO可能會考慮到移動終端的版本和瀏覽器版本信息,對此,肥貓科技也為大家整理了一段比較有效的代碼,如下所示:
<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, //蘋果、谷歌內核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐內核
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 && u.indexOf('Macintosh') < 0), //是否為iPhone或者QQHD瀏覽器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web應該程序,沒有頭部與底部
};
}(),
language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
if (browser.versions.ios||browser.versions.android||browser.versions.iPhone||browser.versions.iPad) {
self.location=http://www..com;
}
</script>
3、自動識別手機頁面、iPad頁面和wap頁面
可以根據不同的終端類型適當的改變正則表達式,這段代碼添加到需要識別的網頁,會根據客戶端的類型自動跳轉到手機頁、平板頁或其他移動設備頁面,非常的靈活!
<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://www..com/m";
}else if(/iPad/i.test(navigator.userAgent)){
window.location.href="http://www..com/pad";
}else{
window.location.href="http://www..com/wap"
}
}catch(e){}
}
}
</script>
4、使用PHP語言來識別
對於一些精通PHP語言的博友來說,也可以通過PHP語法來實現,比如以下的寫法:
//設定Mobile的定義
$mobileAgent = array("iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire");
//讀取用戶的瀏覽器資料
$browser = $_SERVER['HTTP_USER_AGENT'];
$isMobile = false;
//檢查開始
foreach($mobileAgent as $search){
if(stristr($browser,$search)!=false){
$isMobile = true;
//echo $search;
//程式碼(轉址)
header("Location: http://www..com/m/index.html");
//停止運行程序
exit;
}
}
?>
5、做個自動識別的效果
經過多次測試,我們也可以做個自動識別的效果,方法很簡單,在你需要自動跳轉的頁面加入以下代碼:
<script type="text/javascript">
var mobileAgent = new Array("iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire");
var browser = navigator.userAgent.toLowerCase();
var isMobile = false;
for (var i=0; i<mobileAgent.length; i++){ if (browser.indexOf(mobileAgent[i])!=-1){ isMobile = true;
//alert(mobileAgent[i]);
location.href = 'http://siteapp..com/webapp/mahaixiang.cn#m/http://mahaixiang.cn/';
break; } }
</script>
6、自動識別移動端適配跳轉網址的代碼
手機版的網站需要簡單,以文字為主,才能很好的兼容,可以在網站的首頁設置一個程序來判斷用戶是手機端還是電腦,如果是手機端,直接中轉到手機端,如果是電腦端,直接中轉到電腦端(大家也可以使用網路提高的網路移動搜索開放適配服務。
對此,大家可以在網站的首頁插入入下代碼:
<script type="text/javascript">
function browserRedirect() {
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 || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) ){
window.location.href=B頁面;
}
}
browserRedirect();
</script>
<script type="text/javascript">uaredirect("<A href='http://www..com/wap/","http://www..com/index.html");http://www..com/wap/","http://www..com/index.html");
</script>
在肥貓科技看來,PC版網頁自動識別手機客戶端並跳轉,用js進行判斷是否手機客戶端進行跳轉最好,特別是靜態網頁,把這個過程通過js的方式放在用戶客戶端執行,可以大大減少伺服器端額外處理的壓力,但是有時需要通過在伺服器端進行判斷的情況除外。