1 <?php
3 function inAgent($string)
4 {
5 if (isset($_SERVER['HTTP_USER_AGENT'])) {
6 $http_user_agent = $_SERVER['HTTP_USER_AGENT'];
7 } else {
8 $http_user_agent = '';
9 }
10 return !(strpos($http_user_agent, $string) === false);
11 }
13 if (inAgent('Gecko')) {
14 $browser = 'Mozilla';
15 } elseif (
16 inAgent('Lynx') || inAgent('lynx')
17 || inAgent('Links') || inAgent('links')
18 || inAgent('w3m')
19 ) {
20 $browser = 'TEXT';
21 // I detect Konqueror and Opera before than the others,
22 // as they often qualify themselves as Mozilla/Netscape/MSIE
23 } elseif (inAgent('Konqueror')) {
24 if (inAgent('Konqueror 1') || inAgent('Konqueror/1')) {
25 $browser = 'Konqueror1';
26 // On KDE 1.1.2, kfm qualifies itself as "Konqueror/1.1.2"
27 // (tested on Red Hat Linux 6.2)
28 } elseif (inAgent('Konqueror 2.0') || inAgent('Konqueror/2.0')
29 || inAgent('Konqueror 2;') || inAgent('Konqueror/2;')
30 || inAgent('Konqueror 2)') || inAgent('Konqueror/2)')
31 ) {
32 $browser = 'Konqueror20';
33 } elseif (inAgent('Konqueror 2.1') || inAgent('Konqueror/2.1')) {
34 $browser = 'Konqueror21';
35 } else {
36 $browser = 'Konqueror';
37 }
38 } elseif (inAgent('Opera')) {
39 if (inAgent('Opera 4') || inAgent('Opera/4')) {
40 $browser = 'Opera4';
41 // I hope that Opera 4 users can be satisfied by the Plain menu version;
42 // sorry, but I have never used Opera 4 and I do not have a copy of it
43 // to perform tests. If you are using Opera < 4, it's your problem :-P
44 } elseif ((inAgent('Opera 6') || inAgent('Opera/6')) && inAgent('Linux')) {
45 $browser = 'Opera6forLinux';
46 } elseif (
47 inAgent('Opera 5') || inAgent('Opera/5')
48 || inAgent('Opera 6') || inAgent('Opera/6')
49 ) {
50 $browser = 'Opera56';
51 } else {
52 $browser = 'Opera';
53 }
54 } elseif (inAgent('Safari')) {
55 $browser = 'Safari';
56 } elseif (inAgent('MSIE 4') || inAgent('MSIE/4')) {
57 $browser = 'IE4';
58 } elseif (inAgent('MSIE')) {
59 $browser = 'IE5';
60 // msie != 4 is handled like msie 5+; if you are using msie 3-, it's your problem :-P
61 } elseif (inAgent('Mozilla 4') || inAgent('Mozilla/4')) {
62 $browser = 'NS4';
63 } else {
64 $browser = 'Unknown';
65 }
67 if (
68 $browser == 'TEXT'
69 || $browser == 'Konqueror1' || $browser == 'Konqueror20' || $browser == 'Konqueror21'
70 // IMO, on Konqueror 2.1, the Plain version is more usable than the "OLD" one
71 || $browser == 'Opera4'
72 ) {
73 $menuType = 'PLAIN';
74 } elseif ($browser == 'NS4' || $browser == 'Opera56' || $browser == 'IE4') {
75 $menuType = 'OLD';
76 } else {
77 $menuType = 'DOM';
78 }
80 ?>