1
我的用戶代理進行測試時,從Opera瀏覽器進行測試時,讀取:所有瀏覽器的名字從歌劇broswer
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.125 Safari/537.36 OPR/30.0.1835.88
現在,我有以下腳本測試瀏覽器:
$browser_list = array(
array('search_string' => 'chrome', 'bname' => 'Google Chrome', 'matchname' => 'chrome', 'ub' => 'Chrome'),
array('search_string' => 'firefox', 'bname' => 'Mozilla Firefox', 'matchname' => 'firefox', 'ub' => 'Firefox'),
array('search_string' => 'safari', 'bname' => 'Apple Safari', 'matchname' => 'Safari', 'ub' => 'Safari'),
array('search_string' => 'netscape', 'bname' => 'Netscape', 'matchname' => 'Netscape', 'ub' => 'Netscape'),
array('search_string' => 'opera', 'bname' => 'Opera', 'matchname' => 'Opera', 'ub' => 'Opera'), // Must be before IE
array('search_string' => 'MSIE', 'bname' => 'Internet Explorer', 'matchname' => 'IE', 'ub' => 'MSIE'),
array('search_string' => 'Mozilla', 'bname' => 'Internet Explorer', 'matchname' => 'IE', 'ub' => 'MSIE'), // Hack for IE 11 as the LAST one so you know not match the above
);
// Next get the name of the useragent yes seperately and for good reason
foreach ($browser_list as $item) {
echo $item['search_string'];
if (stripos($userAgent, $item['search_string']) !== false) {
$bname = $item['bname'];
$matchname = $item['matchname'];
$ub = $item['ub'];
echo "breaking";
break;
}
}
但是,由於UserAgent包含所有的瀏覽器名稱,所以我正面臨着這個問題。
另外,爲什麼Opera的usergent如此怪異?
爲什麼過於複雜的事情。 [這裏](https://github.com/cbschuld/Browser.php)是一個非常簡單的庫,它完全符合你的需求。 – Andrew
@Andrew,抱歉不能使用任何圖書館...多數民衆贊成在這個問題上的限制 – Saswat
男人,運氣不好。無論哪種方式,你都可以在源代碼中挖掘一下,看看他是如何處理它的。 – Andrew