53 $HTTP_USER_AGENT =
$_SERVER[
'HTTP_USER_AGENT'] ??
'undefined';
57 if (preg_match(
'/MSIE (\d.\d{1,2})/', (
string) $HTTP_USER_AGENT, $log_version)) {
58 $this->agent_version = $log_version[1];
59 $this->agent_name =
'IE';
60 } elseif (preg_match(
'/Opera (\d.\d{1,2})/', (
string) $HTTP_USER_AGENT, $log_version) ||
61 preg_match(
'/Opera\/(\d.\d{1,2})/', (
string) $HTTP_USER_AGENT, $log_version)) {
62 $this->agent_version = $log_version[1];
63 $this->agent_name =
'OPERA';
64 } elseif (preg_match(
'/Safari ([0-9\/.]*)/', (
string) $HTTP_USER_AGENT, $log_version) ||
65 preg_match(
'/Safari\/([0-9\/.]*)/', (
string) $HTTP_USER_AGENT, $log_version)) {
66 $this->agent_version = $log_version[1];
67 $this->agent_name =
'Safari';
68 } elseif (preg_match(
'/Firefox ([0-9\/.]*)/', (
string) $HTTP_USER_AGENT, $log_version) ||
69 preg_match(
'/Firefox\/([0-9\/.]*)/', (
string) $HTTP_USER_AGENT, $log_version)) {
70 $this->agent_version = $log_version[1];
71 $this->agent_name =
'Firefox';
72 } elseif (preg_match(
'/iCab (\d.[0-9a-zA-Z]{1,4})/', (
string) $HTTP_USER_AGENT, $log_version) ||
73 preg_match(
'/iCab\/(\d.[0-9a-zA-Z]{1,4})/', (
string) $HTTP_USER_AGENT, $log_version)) {
74 $this->agent_version = $log_version[1];
75 $this->agent_name =
'iCab';
76 } elseif (preg_match(
'/Mozilla (\d.[0-9a-zA-Z]{1,4})/', (
string) $HTTP_USER_AGENT, $log_version) ||
77 preg_match(
'/Mozilla\/(\d.[0-9a-zA-Z]{1,4})/', (
string) $HTTP_USER_AGENT, $log_version)) {
78 $this->agent_version = $log_version[1];
79 $this->agent_name = preg_match(
'/Gecko/', (
string) $HTTP_USER_AGENT, $log_version) ?
'Mozilla' :
'Netscape';
80 } elseif (preg_match(
'/Konqueror\/(\d.\d.\d{1,2})/', (
string) $HTTP_USER_AGENT, $log_version) ||
81 preg_match(
'/Konqueror\/(\d.\d{1,2})/', (
string) $HTTP_USER_AGENT, $log_version)) {
82 $this->agent_version = $log_version[1];
83 $this->agent_name =
'Konqueror';
85 $this->agent_version = 0;
86 $this->agent_name =
'OTHER';
92 if (strstr((
string) $HTTP_USER_AGENT,
'Win')) {
93 $this->agent_platform =
'Win';
94 } elseif (strstr((
string) $HTTP_USER_AGENT,
'Mac')) {
95 $this->agent_platform =
'Mac';
96 } elseif (strstr((
string) $HTTP_USER_AGENT,
'Linux')) {
97 $this->agent_platform =
'Linux';
98 } elseif (strstr((
string) $HTTP_USER_AGENT,
'Unix')) {
99 $this->agent_platform =
'Unix';
100 } elseif (strstr((
string) $HTTP_USER_AGENT,
'Beos')) {
101 $this->agent_platform =
'Beos';
103 $this->agent_platform =
'Other';
107 $this->user_agent =
$_SERVER[
'HTTP_USER_AGENT'] ??
'undefined';
108 $this->accept =
$_SERVER[
'HTTP_ACCEPT'] ??
'undefined';
110 if (isset(
$_SERVER[
'HTTP_X_WAP_PROFILE']) || isset(
$_SERVER[
'HTTP_PROFILE'])) {
111 $this->is_mobile =
true;
112 } elseif (strpos((
string) $this->accept,
'text/vnd.wap.wml') > 0 || strpos(
113 (
string) $this->accept,
114 'application/vnd.wap.xhtml+xml' 116 $this->is_mobile =
true;
118 foreach (array_keys($this->devices) as $device) {
120 $this->is_mobile =
true;