[英]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.