php實作手機跳轉頁面的方法:先開啟「header.php」檔案;然後在頂部加入程式碼為「$agent = $_SERVER['HTTP_USER_AGENT'];」;最後儲存修改即可。
推薦:《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['HTTP_USER_AGENT']; 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['HTTP_USER_AGENT']; 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['HTTP_USER_AGENT']; 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['HTTP_USER_AGENT']; ?>
儲存為ua-test.php,上傳至伺服器,用你的手機造訪這個頁面。
以上是php如何實現手機適配跳轉頁面的詳細內容。更多資訊請關注PHP中文網其他相關文章!