我正在尝试使用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)浏览器吗?
任何人都欢迎分享有关这方面的任何知识/帮助。
1条答案
按热度按时间bjp0bcyl1#
您需要简化循环,以便它在找到匹配值时立即退出:
如果找不到任何内容,您可能需要一个默认值:
否则,每次都将遍历整个列表,并且(可能)总是匹配最后一个“移动的”,因为它也可能出现在字符串中。