2
2
3
3
A PHP library to detect browser, OS, platform and device type by User-Agent parsing.\
4
4
This library focused on high performance and low memory usage HTTP client parsing.\
5
- Uses a simple and fast algorithm to accurate detection more than 100 browsers types and ~ 58 OS types.\
5
+ Uses a simple and fast algorithm to accurate detection more than 120 browsers types and ~ 58 OS types.\
6
6
For most commonly browsers parsing process tooks less than 0.0005 second even on low-level shared hosting.\
7
7
In the case of very unusual User-Agents recognized time is less than 0.0008 second for same conditioned hosting environment.\
8
8
The library supports only really actual Browsers and OS without support for outdated environments that are actually not used now.\
@@ -38,7 +38,7 @@ Second argument (optional) may contains 'JSON' if you want to get returned resul
38
38
``` php
39
39
<?php
40
40
require_once('BrowserDetection.php');
41
- $Browser = new BrowserDetection();
41
+ $Browser = new foroco\ BrowserDetection();
42
42
43
43
$useragent = $_SERVER['HTTP_USER_AGENT'];
44
44
@@ -66,6 +66,17 @@ $result = $Browser->getAll($useragent, 'JSON');
66
66
?>
67
67
```
68
68
69
+ The library class ` BrowserDetection ` also contains special method ` setTouchSupport() ` (optional, available from version 1.1).\
70
+ This method is necessary to detect mobile browsers in ` Desktop Mode ` condition (Android and iOS).\
71
+ For ` Desktop Mode ` detection ` setTouchSupport() ` method should call if browser supports Touch events.\
72
+ Touch events detection performed by client-side JavaScript code in the target browser. Example:
73
+
74
+ ``` javascript
75
+ if ((' ontouchstart' in window ) || window .DocumentTouch && document instanceof DocumentTouch ) {
76
+ // Touch Event detected
77
+ }
78
+ ```
79
+
69
80
## Description for returned variables
70
81
71
82
** OS Type** (` os_type ` )\
@@ -146,6 +157,10 @@ Returns `1` number if Android Webview mode detected or returns `0` if it's not.
146
157
** Browser iOS Webview** (` browser_ios_webview ` )\
147
158
Returns ` 1 ` number if iOS Webview mode detected or returns ` 0 ` if it's not.
148
159
160
+ ** Browser Desktop Mode** (` browser_desktop_mode ` )\
161
+ Returns ` 1 ` number if mobile browser works in ` Desktop Mode ` or returns ` 0 ` if it's not detected.\
162
+ ` setTouchSupport() ` method should call for ` Desktop Mode ` detection if browser supports Touch events.
163
+
149
164
## Usage Examples
150
165
151
166
See follow examples to understand library usage use cases.
@@ -157,7 +172,7 @@ To detect all possible environment data use:
157
172
``` php
158
173
<?php
159
174
require_once('BrowserDetection.php');
160
- $Browser = new BrowserDetection();
175
+ $Browser = new foroco\ BrowserDetection();
161
176
162
177
$useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.4150.0 Iron Safari/537.36';
163
178
$result = $Browser->getAll($useragent);
@@ -187,6 +202,7 @@ Array
187
202
[browser_webkit_version] => 0
188
203
[browser_android_webview] => 0
189
204
[browser_ios_webview] => 0
205
+ [browser_desktop_mode] => 0
190
206
)
191
207
```
192
208
@@ -197,7 +213,7 @@ To parse only OS data use:
197
213
``` php
198
214
<?php
199
215
require_once('BrowserDetection.php');
200
- $Browser = new BrowserDetection();
216
+ $Browser = new foroco\ BrowserDetection();
201
217
202
218
$useragent = 'Mozilla/5.0 (Android 8.1.0; Tablet; rv:68.6.0) Gecko/68.6.0 Firefox/68.6.0';
203
219
$result = $Browser->getBrowser($useragent);
@@ -225,7 +241,7 @@ To parse only browser data use:
225
241
``` php
226
242
<?php
227
243
require_once('BrowserDetection.php');
228
- $Browser = new BrowserDetection();
244
+ $Browser = new foroco\ BrowserDetection();
229
245
230
246
$useragent = 'Mozilla/5.0 (iPad; CPU OS 9_3_4 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/80.0.3987.122 Mobile/13G35 Safari/601.1.46';
231
247
$result = $Browser->getBrowser($useragent);
@@ -249,6 +265,7 @@ Array
249
265
[browser_webkit_version] => 0
250
266
[browser_android_webview] => 0
251
267
[browser_ios_webview] => 0
268
+ [browser_desktop_mode] => 0
252
269
)
253
270
```
254
271
@@ -259,7 +276,7 @@ To parse only device type data use:
259
276
``` php
260
277
<?php
261
278
require_once('BrowserDetection.php');
262
- $Browser = new BrowserDetection();
279
+ $Browser = new foroco\ BrowserDetection();
263
280
264
281
$useragent = 'MEmpresas/20180706 CFNetwork/808.2.16 Darwin/17.4.0';
265
282
$result = $Browser->getBrowser($useragent);
@@ -276,14 +293,56 @@ Array
276
293
)
277
294
```
278
295
296
+ ### Desktop Mode Detection
297
+
298
+ To detect mobile browser works in ` Desktop Mode ` use:
299
+
300
+ ``` php
301
+ <?php
302
+ require_once('BrowserDetection.php');
303
+ $Browser = new foroco\BrowserDetection();
304
+
305
+ $useragent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36';
306
+ $Browser->setTouchSupport(); // Call if Touch events detected in browser by JavaScript code ('ontouchstart' in window)
307
+ $result = $Browser->getBrowser($useragent);
308
+ print_r($result);
309
+ ?>
310
+ ```
311
+
312
+ Returns:
313
+
314
+ ```
315
+ Array
316
+ (
317
+ [os_type] => mobile
318
+ [os_family] => android
319
+ [os_name] => Android
320
+ [os_version] => 0
321
+ [os_title] => Android
322
+ [device_type] => mobile
323
+ [browser_name] => Chrome
324
+ [browser_version] => 81
325
+ [browser_title] => Chrome 81
326
+ [browser_chrome_original] => 1
327
+ [browser_firefox_original] => 0
328
+ [browser_safari_original] => 0
329
+ [browser_chromium_version] => 81
330
+ [browser_gecko_version] => 0
331
+ [browser_webkit_version] => 0
332
+ [browser_android_webview] => 0
333
+ [browser_ios_webview] => 0
334
+ [browser_desktop_mode] => 1
335
+ )
336
+ ```
337
+
279
338
### Detect All (JSON)
280
339
281
340
To pasre all possible environment data and returns JSON format string:
282
341
283
342
``` php
284
343
<?php
285
344
require_once('BrowserDetection.php');
286
- $Browser = new BrowserDetection();
345
+ $Browser = new foroco\ BrowserDetection();
287
346
288
347
$useragent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36';
289
348
$result = $Browser->getAll($useragent);
@@ -294,7 +353,7 @@ print_r($result);
294
353
Returns:
295
354
296
355
```
297
- {"os_type":"mobile","os_family":"macintosh","os_name":"iOS","os_version":6,"os_title":"iOS 6","device_type":"mobile","browser_name":"Chrome","browser_version":78,"browser_title":"Chrome 78","browser_chrome_original":1,"browser_firefox_original":0,"browser_safari_original":0,"browser_chromium_version":78,"browser_gecko_version":0,"browser_webkit_version":0,"browser_android_webview":0,"browser_ios_webview":0}
356
+ {"os_type":"mobile","os_family":"macintosh","os_name":"iOS","os_version":6,"os_title":"iOS 6","device_type":"mobile","browser_name":"Chrome","browser_version":78,"browser_title":"Chrome 78","browser_chrome_original":1,"browser_firefox_original":0,"browser_safari_original":0,"browser_chromium_version":78,"browser_gecko_version":0,"browser_webkit_version":0,"browser_android_webview":0,"browser_ios_webview":0,"browser_desktop_mode":0 }
298
357
```
299
358
300
359
## Benchmarking Tests
0 commit comments