52 {
53 $HTTP_USER_AGENT =
$_SERVER[
'HTTP_USER_AGENT'] ??
'undefined';
54
55
56
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';
84 } else {
85 $this->agent_version = 0;
86 $this->agent_name = 'OTHER';
87 }
88
89
90
91
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';
102 } else {
103 $this->agent_platform = 'Other';
104 }
105
106
107 $this->user_agent =
$_SERVER[
'HTTP_USER_AGENT'] ??
'undefined';
108 $this->accept =
$_SERVER[
'HTTP_ACCEPT'] ??
'undefined';
109
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'
115 ) > 0) {
116 $this->is_mobile = true;
117 } else {
118 foreach (array_keys($this->devices) as $device) {
120 $this->is_mobile = true;
121 }
122 }
123 }
124 }