首頁  >  文章  >  後端開發  >  php如何實現手機適配跳轉頁面

php如何實現手機適配跳轉頁面

藏色散人
藏色散人原創
2020-08-13 09:38:374087瀏覽

php實作手機跳轉頁面的方法:先開啟「header.php」檔案;然後在頂部加入程式碼為「$agent = $_SERVER['HTTP_USER_AGENT'];」;最後儲存修改即可。

php如何實現手機適配跳轉頁面

推薦:《PHP影片教學

PHP網站手機適配跳到相對應的頁面

如果你有來自手機介面的訪客,你很可能需要將他們引導至一個不同的頁面,一個特別為手機瀏覽器優化的介面。

1.在頁面頭部添加判斷

透過PHP和瀏覽器頭訊息,我們可以輕鬆地實現將手機用戶轉向經過專門設計的WAP介面。我剛好使用了WP-T-WAP外掛實現了介面的WAP化,WAP瀏覽的網址是http://mkaifa.com/wap。 (你可以嘗試瀏覽這個地址,它可以在電腦上被打開。真抱歉,我現在用的是MobilePress,沒有演示了,MobilePress可以自動判斷訪問者的瀏覽器。)

我希望手機訪客在開啟http://mkaifa.com/網址時,自動導向http://mkaifa.com/wap。怎麼辦呢?

答案非常簡單。

開啟header.php檔。在第一行插入以下程式碼:

< ?php
$agent = $_SERVER[&#39;HTTP_USER_AGENT&#39;];
if(strpos($agent,"comFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS"))
header("Location:http://mkaifa.com/wap");
?>

這段程式碼的意思是,當瀏覽器回傳的UA資訊為Opera Mini、UCWEB等內容時,將頁面轉向http://mkaifa.com/wap 。

1.1 補充:增加手機瀏覽器的跳躍提示

當你使用上面的方法設定跳轉時,可能會遇到這種狀況:手機訪客直接訪問類似http: //mkaifa.com/archive/xxx的子頁面,而不是首頁。這時,改判斷語句仍會執行指令,將手機訪客引導至手機介面的首頁,讓訪客無法取得想要的資訊。

怎麼辦呢?

你可以在這段語句之外再加入一個判斷,只有在目前頁面為首頁時執行此指令。

在WordPress環境下這個判斷的寫法是

<?php if ( is_home() ) { ... }?>

那麼全部的程式碼是:

<?php
$agent = $_SERVER[&#39;HTTP_USER_AGENT&#39;];
if ( is_home() && ((strpos($agent,"comFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS")) )
header("Location:http://mkaifa.com/wap");
}
?>

這樣我們又遇到一個問題:手機訪客在瀏覽子頁面時,並不知道你提供了WAP介面,而你恰恰又很希望推銷的你的WAP介面。

我們可以修改這個判斷語句,讓它不再直接跳轉,而是在特定瀏覽器下顯示提示訊息,告訴手機使用者可以轉換至WAP介面瀏覽。

代碼寫法如下:

<?php
$agent = $_SERVER[&#39;HTTP_USER_AGENT&#39;];
if(strpos($agent,"comFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS")) { ?>
<div id="mobile"><p>系统检测到您正在使用手机浏览器,您可以访问<a href="http://mkaifa.com/wap">移动界面</a>以获取更好的浏览体验。</p></div>
<?php } ?>

當然了,你可以綜合這兩種方法,讓手機訪客在訪問首頁時自動跳轉,而訪問其他介面時顯示提示訊息。

2.需要足夠的手機瀏覽器UA資訊

當瀏覽器存取頁面時,它會向伺服器提交一個標誌字符,這段字符被稱為UA(User Agent),他們看起來大概是這個樣子:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) )

是的,UA很長,甚至還包含了系統資訊。但是當我們進行判斷時,只需要核對最關鍵的字元。例如我需要判斷目前使用者是否使用了IE 8(我的確就是用的IE8),那麼 在上面的判斷語句中就應該寫成strpos($agent,”MSIE 8.0″) 。

我準備了8種最常見的瀏覽器/平台分別是comFront、iPhone、JAVA(MIDP-2.0)、Opera Mini、UCWEB、Android、Windows CE/Mobile、SymbianOS。就目前的狀況來說,這8種平台已經包含了國內幾乎全部的手機訪客,當然,完整的手機瀏覽客戶端列表不止這麼多,我羅列一些:

2.0 MMP, 240×320, 400X240, AvantGo, BlackBerry, Blazer, Cellphone, Danger, DoCoMo, Elaine/3.0 EudoraWeb,   Googlebot-Mobile, hiptop, IEMobile, KYOCERA/WX310K, LG/U990, MIDP-2., MMEF20, MOT-V, comFront, Newt, Nintendo Wii, Nitro, // Nintendo DS Nokia, Opera Mini, Palm, PlayStation Portable, portalmmm, Proxicom, Proxicom, SHARP-TQ-GX10, SHG-i900, Small, SonyEricsson, Symbian OS, SymbianOS, TS21i-10, UP.Browser, UP.Link, webOS, // Palm Pre, etc. Windows CE, WinWAP, YahooSeeker/M1A1-R2D2

你可以根據這個列表新增或取代上面的PHP判斷語句。但我還是推薦我已經選好的8種平台,因為目前會使用手機瀏覽網路——特別是個人部落格的用戶,基本上都是高階玩家。

另外你可以寫一個簡單的頁面,用來判斷你的手機UA

<?phpecho $_SERVER[&#39;HTTP_USER_AGENT&#39;]; ?>

儲存為ua-test.php,上傳至伺服器,用你的手機造訪這個頁面。

以上是php如何實現手機適配跳轉頁面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn