2010-04-20 31 views

回答

9
if($_SERVER['HTTP_USER_AGENT'] == 'Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10') { 
    echo "That is an iPad"; 
} 

http://developer.apple.com/safari/library/technotes/tn2010/tn2262.html

另外,如果你不完全匹配打擾,你可能會考慮這樣的:

if(stristr($_SERVER['HTTP_USER_AGENT'], 'Mozilla/5.0(iPad;')) { 
    // probably an iPad 
} 
+1

我不知道我會尋找一個完全匹配。除非你有特定版本的理由,否則我只會尋找它包含「iPad」。 – 2010-04-20 16:37:15

+1

-1爲湯姆的推理。當4.0的操作系統升級推出時,這幾乎肯定會中斷。 – 2010-04-20 16:38:04

+0

@Tom - 在您的評論之前正在編輯它 – karim79 2010-04-20 16:38:06

6

您可以通過iPad's user-agent header$_SERVER['HTTP_USER_AGENT']嗤之以鼻,但理想,如果您可以在iPad上對任何其他設備進行功能檢測,並且與代理監聽相比更強大,更靈活。

+0

好的答案,但對於<20個帖子和這個級別的問題的OP,有關「功能檢測」的更多細節意味着更好。 – 2010-04-20 16:49:15

+1

+1用於特徵檢測。我已經看到了幾個SO問題,涉及顯式觸摸功能以及它們在JS中的支持 - 至少在現代瀏覽器上。這可能是一條路。 @大衛也有一點。 – 2010-04-20 16:49:42

+0

@David - 我稍後可能會發布有關功能檢測的另一個問題。當我試用iPad並且不想使用我的登錄信息時,我發佈了一個新帳戶。我驚訝這不是一個愚蠢的,實際上......因爲它停留在周圍,並得到很好的答案,我把它合併,所以我可以選擇一個答案。然而,我選擇了karim79的答案,因爲我更喜歡代碼片段的答案。謝謝T.J.! – 2010-04-20 23:54:05

1

在該請求的用戶代理報頭將是:

的Mozilla/5.0(ipad公司; U; CPU OS 3_2等的Mac OS X; EN-US)爲AppleWebKit/531.21.10(KHTML,例如Gecko)版本/4.0.4 Mobile/7B367 Safari/531.21.10

請注意,它包含「iPad」。

3

此外,更簡單但可能不準確。

if (strstr($_SERVER['HTTP_USER_AGENT'], 'iPad')) { 
    echo "You are on an iPad"; 
}