170 похожих чатов

/* * Ловец браузеров * Автор: http://blog.artdevue.com/user/artdevue * Сведений о

лицензии найти не удалось :(
*/
function user_browser($agent) {
preg_match("/(MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon|Sleipnir|Dolphin|UC Browser)(?:\/| )([0-9.]+)/", $agent, $browser_info);
list(,$browser,$version) = $browser_info;
if (preg_match("/Opera ([0-9.]+)/i", $agent, $opera)) return 'Opera';//.$opera[1];
if ($browser == 'MSIE') {
preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $agent, $ie);
if ($ie) return $ie[1].' based on IE';//.$version;
return 'IE';//.$version;
}
if ($browser == 'Firefox') {
preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $agent, $ff);
if ($ff) return $ff[1];//.' '.$ff[2];
}
if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5);
if ($browser == 'Version') return 'Safari';//.$version;
if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko';
if ($browser == '') $browser = 'Undefined';
//return $browser.' '.$version;
return $browser;
}

2 ответов

14 просмотров

Для этого что-то в композере есть

Зачем использовать внешние функции если есть browscap с его get_browser? Если версия php выше 7, то лучше эту функцию использовать.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта