簡體   English   中英

如何在php中檢測Safari(Iphone)瀏覽器?

[英]How to detect Safari (Iphone) browser In php?

我正在嘗試使用 w3docs 中描述的方法檢測Safari瀏覽器。

我試過了,

<?php
ob_start();
session_start();

function getBrowser()
 {
   $user_agent = $_SERVER['HTTP_USER_AGENT'];
   $browser = "N/A";

   $browsers = [
     '/msie/i' => 'Internet explorer',
     '/firefox/i' => 'Firefox',
     '/safari/i' => 'Safari',
     '/chrome/i' => 'Chrome',
     '/edge/i' => 'Edge',
     '/opera/i' => 'Opera',
     '/mobile/i' => 'Mobile browser',
   ];

   foreach ($browsers as $regex => $value) {
     if (preg_match($regex, $user_agent)) {
       $browser = $value;
     }
   }

   return $browser;
 }
 $agent = getBrowser();
echo $agent;
?>

它為chrome返回chrome,為移動瀏覽器返回移動瀏覽器,但對於safari不返回。是否沒有辦法檢測到Safari(Iphone)瀏覽器?

歡迎任何人分享與此相關的任何知識/幫助。

您需要縮短循環,以便它在找到匹配值后立即退出:

foreach ($browsers as $regex => $value) {
    if (preg_match($regex, $user_agent)) {
        return $value;
    }
}

然后,如果找不到任何內容,您可能需要默認值:

foreach ($browsers as $regex => $value) {
    if (preg_match($regex, $user_agent)) {
        return $value;
    }
}
return 'unknown';

否則,您每次都會遍歷整個列表,並且(可能)總是匹配最后一個“mobile”,因為它很可能也出現在字符串中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM