2008-10-09 29 views
7

Mobile Safari是一個功能非常強大的瀏覽器,它可以完美地處理我的網站。不過,我的網頁上有幾個元素可以針對使用此設備進行瀏覽進行優化;如提供比桌面設備小的縮略圖,以幫助在屏幕上顯示更多內容。如何使用PHP檢測Mobile Safari服務器端?

我想知道我可以使用PHP檢測移動Safari瀏覽器(所有版本,最好),這樣的話我可以成爲一)一個特定的css文件和b)不同大小的圖像縮略圖。

回答

4

比較用戶代理字符串與移動Safari瀏覽器的一個用途:

Safari Mobile User Agent String

+2

此鏈接似乎不再適合正確的位置。 – Nosredna 2009-07-14 21:36:38

+0

您的鏈接似乎不再有效..它只是重定向到開發者的Safari瀏覽器的首頁。 – matdumsa 2010-03-22 15:58:56

3
$_SERVER['HTTP_USER_AGENT'] 

這會給你的用戶代理字符串回來,你可以比較手機safari。

p.s. http://wurfl.sourceforge.net/ WURFL可以幫助您確定您想要的UA。

+0

DeviceAtlas是WURFL的另一種替代方案 – 2008-10-09 11:01:41

7

感謝喬,我讀了頁面,發現WebKit detection library(在JavaScript)。我改變了代碼以適應我的需求。

對於任何這是有興趣的,這裏是我的解決方案。

<?php 

/* detect Mobile Safari */ 

$browserAsString = $_SERVER['HTTP_USER_AGENT']; 

if (strstr($browserAsString, " AppleWebKit/") && strstr($browserAsString, " Mobile/")) 
{ 
    $browserIsMobileSafari = true; 
} 

?> 
0

的Mozilla/5.0(的webOS/1.0; U;烯-US)爲AppleWebKit/525.27.1(KHTML,例如Gecko)版本/ 1.0的Safari/525.27.1前/ 1.0那是Palm Pre的瀏覽器,而'Mobile'這個詞不存在。

我的工作讓我徹底檢測工作,所有新功能的瀏覽器。在看過mytouch,G1,Palm Pre,droid和其他(但不是全部)後,我現在確信這適用於所有新手機:

if(preg_match(「/ applewebkit/i」,$ _SERVER [ 'HTTP_USER_AGENT'])& & preg_match(「/(mobile | pre)/ i」,$ _SERVER ['HTTP_USER_AGENT'])) header(「Location:http://simplefoodie.com/iphone/?carryover=」.urlencode($ _ SERVER [REQUEST_URI])));

0
<?php 

// detect Safari only! 

$string = $_SERVER['HTTP_USER_AGENT']; 

if (strstr($string, " AppleWebKit/") && strstr($string, " Safari/") && !strstr($string, " CriOS")) 
    { 
     echo 'See in Safari only'; 
    } 

?>