當涉及到PHP 中的用戶瀏覽器檢測時,選擇使用$_SERVER ['HTTP_USER_AGENT'] 和get_browser 函數出現。每種方法都有其優點和缺點。
$_SERVER['HTTP_USER_AGENT'] 提供原始使用者代理字串,其中包含有關瀏覽器、作業系統和其他特定於客戶端的詳細資訊的資訊。該方法受到廣泛支持,並提供用於檢測瀏覽器的全面資料集。但是,需要注意的是,用戶代理可能會被偽造或修改,這可能導致結果不準確。
另一方面,get_browser 是內建 PHP 函數,它解析使用者代理字串並傳回一個包含瀏覽器特定資訊的陣列。它旨在簡化識別和提取特定瀏覽器屬性的過程。但是,get_browser 依賴預編譯的資料集,對於所有使用者代理程式來說,該資料集可能並不總是最新的或準確的,特別是對於新興或不太常見的瀏覽器。
雖然使用$_SERVER['HTTP_USER_AGENT'] 輸出相關CSS 連結可能看起來很簡單,但這並不被認為是簡單,但這並不被認為是簡單最佳實踐。瀏覽器使用者代理程式可能會有很大差異,並且可能包含意外元素。例如,現代版本的 Internet Explorer 可能在其用戶代理字串中包含“Mozilla”,如提供的更新中所示。
為了確保可靠的CSS 定位,建議改用媒體查詢或CSS 功能檢測
以下程式碼片段提供了一種使用$_SERVER
進行瀏覽器偵測的更全面、更可靠的方法:if (stripos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'Internet Explorer';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== FALSE) { // For supporting IE 11
echo 'Internet Explorer';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== FALSE) {
echo 'Mozilla Firefox';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== FALSE) {
echo 'Google Chrome';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== FALSE) {
echo "Opera Mini";
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== FALSE) {
echo "Opera";
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Safari') !== FALSE) {
echo "Safari";
} else {
echo 'Something else';
}
if (stripos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
回顯「Internet Explorer」;
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== FALSE) { // 用來支援 IE 11
回顯「Internet Explorer」;
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== FALSE) {
回顯“Mozilla Firefox”;
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== FALSE) {
回顯「Google瀏覽器」;
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== FALSE) {
迴聲「迷你歌劇」;
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== FALSE) {
迴聲「歌劇」;
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Safari') !== FALSE) {
回顯「Safari」;
} 別的 {
echo '別的東西';
}此程式碼段檢查使用者代理字串中的特定關鍵字以識別常見瀏覽器。它涵蓋了 Internet Explorer、Firefox、Chrome、Opera 和 Safari 等流行瀏覽器,處理諸如 Internet Explorer 與「Trident」的兼容模式和 Opera Mini 獨特的用戶代理等細微差別。 免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3