回答
我假設你想這樣做的目的是檢測移動瀏覽器 - 如果沒有,那麼這個答案是略有不相關的。
您可以檢出Mobile ESP移動用戶代理檢測庫。使用起來非常簡單,在我的經驗中運作良好。
是的,我看過這個,我喜歡它,但它不提供特定的設備檢測。希望將其與CSS Media Queries結合使用,爲移動設備提供特定功能,例如iPhone 4視網膜顯示。我知道我可以用CSS做到這一點,但我想動態加載它以減小文件大小 – 2011-04-06 19:28:23
爲了防止其他人想要使用此路線,請查看https://github.com/serbanghita/Mobile-Detect – 2013-02-04 20:15:27
您或許可以查看$_SERVER['HTTP_USER_AGENT']
並根據您在該處找到的內容做出決定。可能有一個圖書館在那裏已經照顧到了這一點,但我並沒有意識到我的頭頂有一個。
不,沒有。
瀏覽器不會將其任何media features的信息發送到服務器,所以PHP沒有實現這個所需的信息。
您可以使用get_browser php函數來確定某些瀏覽器功能。但這與媒體查詢不一樣。 CSS媒體查詢是有條件的設備顯示測量。 php函數不會返回這些信息。
我已經使用了一種方法(在http://php.net/manual/en/faq.html.php示例#4上找到),它結合了javascript和php來實現媒體查詢的替代方法。我通過使用嵌入在我的PHP內的JavaScript來實現這一點,以發佈一個變量(screen.width),然後由php使用該變量來確定加載樣式表的斷點。包括下面的代碼片段到你的頭標記:
<?php
if (isset($_GET['width'])) {
$width = $_GET['width'];
if ($width <= 480) { //mobile devices
$style = '<link rel="stylesheet" href="mobile.css" type="text/css">';
} elseif ($width <= 720){ //tablets
$style = '<link rel="stylesheet" href="tablet.css" type="text/css">';
} else { //desktops
$style = '<link rel="stylesheet" href="desktop.css" type="text/css">';
}
echo $style;
} else {
echo "<script language='javascript'>\n";
echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}" . "&width=\" + screen.width; \n";
echo "</script>\n";
exit();
}
?>
我發現使用這種方法也是在頁面的內容負載效率更高,不像媒體查詢(即使它不是這將載入所有設備的CSS樣式必要的 - 即移動設備仍然可以加載桌面樣式)。這種方法可以確保樣式表只會被裝載到特定的設備上,前提是您的樣式表具有所有媒體設備的通用樣式。
Suvi Vignarahah謝謝你分享這個。我一直在尋找一種方法來檢測使用php的媒體查詢。真棒! – 2015-07-05 15:07:24
- 1. 媒體查詢CSS
- 2. CSS媒體查詢
- 3. (CSS)媒體查詢
- 4. CSS /媒體查詢
- 5. CSS媒體查詢
- 6. CSS中的媒體查詢
- 7. CSS類的媒體查詢
- 8. css中的媒體查詢
- 9. Css3媒體查詢響應版本
- 10. Css媒體查詢問題
- 11. CSS媒體查詢問題
- 12. 使用CSS媒體查詢
- 13. 媒體查詢「屏幕」 CSS
- 14. CSS媒體查詢命令
- 15. CSS媒體查詢忽略
- 16. CSS定位媒體查詢
- 17. CSS媒體打印查詢
- 18. CSS媒體查詢高度
- 19. css媒體查詢更改
- 20. CSS和媒體查詢
- 21. CSS媒體查詢(引導)
- 22. 忽略CSS媒體查詢
- 23. CSS媒體查詢爲iPhone
- 24. CSS媒體查詢裝載
- 25. 媒體查詢CSS重要
- 26. CSS媒體查詢功能
- 27. CSS媒體查詢技巧
- 28. CSS媒體查詢援助
- 29. CSS媒體查詢衝突
- 30. 定義CSS媒體查詢
雖然我很好奇,你想達到什麼目的? – whoughton 2011-04-06 17:53:10
使用MobileESP並希望針對特定的分辨率,而不僅僅是設備本身與PHP – 2011-04-06 19:30:09
我認爲你不得不在這個階段恢復到JavaScript。用特定的方法向服務器發出異步請求,然後理論上可以根據這些數據加載新的/更新的/環境特定的樣式表。但是你仍然必須收集你自己想要的參數,將它們發送到服務器,並決定在它後面交換什麼。因此沒有像CSS那樣乾淨利落的媒體查詢。但我覺得更靈活和可定製。 – whoughton 2011-04-06 22:07:47