ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/BBClone/branches/0.6.4-RC1/lib/browser.php
Revision: 15
Committed: Thu Nov 21 13:05:03 2013 UTC (11 years ago) by matthys
Original Path: trunk/lib/browser.php
File size: 43982 byte(s)
Log Message:
Setup lib folder and files.

File Contents

# User Rev Content
1 matthys 15 <?php
2     /* This file is part of BBClone (A PHP based Web Counter on Steroids)
3     *
4     * CVS FILE $Id: browser.php,v 1.156 2011/12/30 23:03:47 joku Exp $
5     *
6     * Copyright (C) 2001-2012, the BBClone Team (see doc/authors.txt for details)
7     *
8     * This program is free software: you can redistribute it and/or modify
9     * it under the terms of the GNU General Public License as published by
10     * the Free Software Foundation, either version 3 of the License, or
11     * (at your option) any later version.
12     *
13     * This program is distributed in the hope that it will be useful,
14     * but WITHOUT ANY WARRANTY; without even the implied warranty of
15     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16     * GNU General Public License for more details.
17     *
18     * See doc/copying.txt for details
19     */
20    
21     ///////////////////////
22     // Browser Detection //
23     ///////////////////////
24    
25     $browser = array(
26     "1X" => array(
27     "icon" => "question",
28     "title" => "1X",
29     "rule" => array(
30     "^Science Traveller International 1X[ /]([0-9.]{1,10})" => "\\1",
31     ),
32     "uri" => "http://jansfreeware.com/jfinternet.htm"
33     ),
34     "abolimba" => array(
35     "icon" => "question",
36     "title" => "Abolimba",
37     "rule" => array(
38     "www.abolimba.de" => ""
39     ),
40     "uri" => "http://www.abolimba.de"
41     ),
42     "abrowse" => array(
43     "icon" => "abrowse",
44     "title" => "ABrowse",
45     "rule" => array(
46     "abrowse[ /\-]([0-9.]{1,10})" => "\\1",
47     "^abrowse" => ""
48     ),
49     "uri" => "http://abrowse.sourceforge.net/"
50     ),
51     "ace" => array(
52     "icon" => "ace",
53     "title" => "Ace Explorer",
54     "rule" => array(
55     "^Ace Explorer" => ""
56     ),
57     "uri" => "http://www.aceexplorer.com/"
58     ),
59     "acorn" => array(
60     "icon" => "question",
61     "title" => "Acorn Browser",
62     "rule" => array(
63     "Acorn (Browse|Phoenix)[ /]([0-9.]{1,10})" => "\\1"
64     ),
65     "uri" => "http://www.vigay.com/inet/acorn/browse-html.html"
66     ),
67     "acoo" => array(
68     "icon" => "acoo",
69     "title" => "Acoo",
70     "rule" => array(
71     "ACOO BROWSER" => ""
72     ),
73     "uri" => "http://www.acoobrowser.com/"
74     ),
75     "activeworlds" => array(
76     "icon" => "question",
77     "title" => "ActiveWorlds",
78     "rule" => array(
79     "Activeworlds[ /]([0-9.]{1,10})" => "\\1",
80     "Activeworlds" => ""
81     ),
82     "uri" => ""
83     ),
84     "akregator" => array(
85     "icon" => "akregator",
86     "title" => "Akregator",
87     "rule" => array(
88     "akregator/([0-9.]{1,10})" => "\\1"
89     ),
90     "uri" => "http://akregator.kde.org/"
91     ),
92     "amaya" => array(
93     "icon" => "amaya",
94     "title" => "Amaya",
95     "rule" => array(
96     "amaya/([0-9.]{1,10})" => "\\1"
97     ),
98     "uri" => "http://www.w3c.org/amaya/"
99     ),
100     "annotate_google" => array(
101     "icon" => "question",
102     "title" => "annotate_google",
103     "rule" => array(
104     "^annotate_google" => "\\1"
105     ),
106     "uri" => "http://ponderer.org/download/annotate_google.user.js"
107     ),
108     "ant" => array(
109     "icon" => "ant",
110     "title" => "ANTFresco",
111     "rule" => array(
112     "ANTFresco[ /]([0-9.]{1,10})" => "\\1"
113     ),
114     "uri" => ""
115     ),
116     "aol" => array(
117     "icon" => "aol",
118     "title" => "AOL",
119     "rule" => array(
120     "aol[ /\-]([0-9.]{1,10})" => "\\1",
121     "America Online Browser[ /]([0-9.]{1,10}).*rev([0-9.]{1,10})" => "\\1",
122     "aol[ /\-]?browser" => "",
123     "AOL-IWENG ([0-9.]{1,10})" => "\\1",
124     "ADM[ /]([0-9.]{1,10})" => "\\1"
125     ),
126     "uri" => "http://www.aol.com"
127     ),
128     "aplix" => array(
129     "icon" => "question",
130     "title" => "Aplix",
131     "rule" => array(
132     "^Aplix HTTP[ /]([0-9.]{1,10})" => "\\1",
133     "^Aplix_(SANYO|SEGASATURN)_browser[ /]([0-9.]{1,10})" => "\\2"
134     ),
135     "uri" => ""
136     ),
137     "arora" => array(
138     "icon" => "arora",
139     "title" => "Arora",
140     "rule" => array(
141     "Arora[ /]([0-9.]{1,10})" => "\\1"
142     ),
143     "uri" => "http://www.arora-browser.org/"
144     ),
145     "avantbrowser" => array(
146     "icon" => "avantbrowser",
147     "title" => "Avant Browser",
148     "rule" => array(
149     "Avant[ ]?Browser" => ""
150     ),
151     "uri" => "http://www.avantbrowser.com/"
152     ),
153     "avantgo" => array(
154     "icon" => "avantgo",
155     "title" => "AvantGo",
156     "rule" => array(
157     "AvantGo[ /]([0-9.]{1,10})" => "\\1"
158     ),
159     "uri" => "http://www.avantgo.com/frontdoor/"
160     ),
161     "aweb" => array(
162     "icon" => "aweb",
163     "title" => "Aweb",
164     "rule" => array(
165     "Amiga-Aweb[/ ]([0-9.]{1,10})" => "\\1",
166     "Aweb[/ ]([0-9.]{1,10})" => "\\1",
167     "^AWeb" => ""
168     ),
169     "uri" => "http://aweb.sunsite.dk/"
170     ),
171     "babya" => array(
172     "icon" => "question",
173     "title" => "Babya Discoverer",
174     "rule" => array(
175     "Babya Discoverer ([0-9.]{1,10})" => "\\1"
176     ),
177     "uri" => ""
178     ),
179     "barca" => array(
180     "icon" => "question",
181     "title" => "Barca",
182     "rule" => array(
183     "Barca(Pro)?[ /]([0-9.]{1,10})" => "\\2"
184     ),
185     "uri" => ""
186     ),
187     "beonex" => array(
188     "icon" => "beonex",
189     "title" => "Beonex",
190     "rule" => array(
191     "beonex/([0-9.]{1,10})" => "\\1"
192     ),
193     "uri" => ""
194     ),
195     "bezillabrowser" => array(
196     "icon" => "bezillabrowser",
197     "title" => "BeZillaBrowser",
198     "rule" => array(
199     "BeZillaBrowser/([0-9.+]{1,10})" => "\\1"
200     ),
201     "uri" => "http://www.bezilla.org/"
202     ),
203     "biyubi" => array(
204     "icon" => "question",
205     "title" => "Biyubi",
206     "rule" => array(
207     "^Biyubi/([0-9.]{1,10})" => "\\1"
208     ),
209     "uri" => ""
210     ),
211     "blackberry" => array(
212     "icon" => "blackberry",
213     "title" => "BlackBerry",
214     "rule" => array(
215     "^BlackBerry.*?/([0-9.]{1,10})" => "\\1"
216     ),
217     "uri" => "http://www.blackberry.com/"
218     ),
219     "blazer" => array(
220     "icon" => "blazer",
221     "title" => "Blazer",
222     "rule" => array(
223     "Blazer[/ ]([0-9.]{1,10})" => "\\1"
224     ),
225     "uri" => ""
226     ),
227     "bluefish" => array(
228     "icon" => "bluefish",
229     "title" => "BlueFish",
230     "rule" => array(
231     "bluefish[/ ]([0-9.]{1,10})" => "\\1"
232     ),
233     "uri" => "http://bluefish.openoffice.nl/"
234     ),
235     "browsex" => array(
236     "icon" => "browsex",
237     "title" => "BrowseX",
238     "rule" => array(
239     "BrowseX.*\(([0-9.]{1,10})" => "\\1"
240     ),
241     "uri" => "http://www.browsex.com/"
242     ),
243     "camino" => array(
244     "icon" => "camino",
245     "title" => "Camino",
246     "rule" => array(
247     "camino/([0-9.+]{1,10})" => "\\1"
248     ),
249     "uri" => "http://www.mozilla.org/projects/camino/"
250     ),
251     "checkandget" => array(
252     "icon" => "checkandget",
253     "title" => "Check&Get",
254     "rule" => array(
255     "Check\&Get[/ ]([0-9.]{1,10})" => "\\1"
256     ),
257     "uri" => "http://activeurls.com/"
258     ),
259     "chimera" => array(
260     "icon" => "chimera",
261     "title" => "Chimera",
262     "rule" => array(
263     "chimera/([0-9.+]{1,10})" => "\\1"
264     ),
265     "uri" => "http://www.chimera.org/"
266     ),
267     "chrome" => array(
268     "icon" => "chrome",
269     "title" => "Chrome",
270     "rule" => array(
271     "\) Chrome([ /])?([0-9.]{1,10})?" => "\\2" //keep this bracket cause Flock have chrome in his UA
272     ),
273     "uri" => "http://www.google.com/chrome/"
274     ),
275     "cometbird" => array(
276     "icon" => "cometbird",
277     "title" => "CometBird",
278     "rule" => array(
279     "CometBird[ /]([0-9.]{1,10})" => "\\1"
280     ),
281     "uri" => "http://www.cometbird.com/"
282     ),
283     "compuserve" => array(
284     "icon" => "question",
285     "title" => "CompuServe",
286     "rule" => array(
287     "CS 2000 ([0-9.]{1,10})" => "\\1"
288     ),
289     "uri" => "http://www.compuserve.com/"
290     ),
291     "contiki" => array(
292     "icon" => "question",
293     "title" => "Contiki",
294     "rule" => array(
295     "^Contiki[ /]([0-9.]{1,10})" => "\\1"
296     ),
297     "uri" => "http://www.sics.se/~adam/contiki/apps/webbrowser.html"
298     ),
299     "columbus" => array(
300     "icon" => "columbus",
301     "title" => "Columbus",
302     "rule" => array(
303     "columbus[ /]([0-9.]{1,10})" => "\\1"
304     ),
305     "uri" => ""
306     ),
307     "crazybrowser" => array(
308     "icon" => "crazybrowser",
309     "title" => "Crazy Browser",
310     "rule" => array(
311     "Crazy Browser[ /]([0-9.]{1,10})" => "\\1"
312     ),
313     "uri" => "http://www.crazybrowser.com/"
314     ),
315     "cruz" => array(
316     "icon" => "cruz",
317     "title" => "Cruz",
318     "rule" => array(
319     "Cruz[ /]([0-9.]{1,10})" => "\\1"
320     ),
321     "uri" => "http://www.cruzapp.com"
322     ),
323     "curl" => array(
324     "icon" => "curl",
325     "title" => "Curl",
326     "rule" => array(
327     "curl[ /]([0-9.]{1,10})" => "\\1"
328     ),
329     "uri" => "http://curl.haxx.se/"
330     ),
331     "cuteftp" => array(
332     "icon" => "question",
333     "title" => "Cute FTP",
334     "rule" => array(
335     "Cute FTP .*[ /]([0-9.]{1,10})" => "\\1"
336     ),
337     "uri" => ""
338     ),
339     "cyberdog" => array(
340     "icon" => "question",
341     "title" => "Cyberdog",
342     "rule" => array(
343     "^Cyberdog[ /]([0-9.]{1,10})" => "\\1"
344     ),
345     "uri" => "http://www.cyberdog.org/"
346     ),
347     "deepnet" => array(
348     "icon" => "deepnet",
349     "title" => "Deepnet Explorer",
350     "rule" => array(
351     "Deepnet Explorer[/ ]([0-9.]{1,10})" => "\\1",
352     " Deepnet Explorer[\);]" => ""
353     ),
354     "uri" => "http://www.deepnetexplorer.com/"
355     ),
356     "demeter" => array(
357     "icon" => "demeter",
358     "title" => "Demeter",
359     "rule" => array(
360     "Demeter[ /]([0-9.]{1,10})" => "\\1",
361     "Demeter" => ""
362     ),
363     "uri" => "http://www.hurrikenux.com/demeter/"
364     ),
365     "democracy" => array(
366     "icon" => "question",
367     "title" => "Democracy",
368     "rule" => array(
369     "Democracy[/ ]([0-9.]{1,10})" => "\\1"
370     ),
371     "uri" => "http://www.getdemocracy.com/"
372     ),
373     "dillo" => array(
374     "icon" => "dillo",
375     "title" => "Dillo",
376     "rule" => array(
377     "dillo/([0-9.]{1,10})" => "\\1"
378     ),
379     "uri" => "http://www.dillo.org/"
380     ),
381     "divx" => array(
382     "icon" => "dillo",
383     "title" => "DivX Player",
384     "rule" => array(
385     "DivX Player[ /]([0-9.]{1,10})" => "\\1"
386     ),
387     "uri" => ""
388     ),
389     "dolfin" => array(
390     "icon" => "dolfin",
391     "title" => "Dolfin",
392     "rule" => array(
393     "Dolfin[ /]([0-9.]{1,10})" => "\\1"
394     ),
395     "uri" => "http://www.bada.com/"
396     ),
397     "doczilla" => array(
398     "icon" => "doczilla",
399     "title" => "DocZilla",
400     "rule" => array(
401     "DocZilla/([0-9.]{1,10})" => "\\1"
402     ),
403     "uri" => "http://www.doczilla.com/"
404     ),
405     "donut" => array(
406     "icon" => "donut",
407     "title" => "Donut RAPT",
408     "rule" => array(
409     "Donut RAPT[/ ]#?([0-9.]{1,10})" => "\\1"
410     ),
411     "uri" => ""
412     ),
413     "donutp" => array(
414     "icon" => "question",
415     "title" => "Donut P",
416     "rule" => array(
417     "^DonutP" => "\\1"
418     ),
419     "uri" => ""
420     ),
421     "dooble" => array(
422     "icon" => "dooble",
423     "title" => "Dooble",
424     "rule" => array(
425     "Dooble/([0-9.]{1,10})" => "\\1"
426     ),
427     "uri" => "http://dooble.sourceforge.net/"
428     ),
429     "doris" => array(
430     "icon" => "doris",
431     "title" => "Doris",
432     "rule" => array(
433     "Doris/([0-9.]{1,10})" => "\\1"
434     ),
435     "uri" => ""
436     ),
437     "dreampassport" => array(
438     "icon" => "dreamcast",
439     "title" => "DreamPassport",
440     "rule" => array(
441     "\(SonicPassport\)" => "",
442     "\(Dream(Passport|Key)[ /]([0-9.]{1,10})\)" => "\\1",
443     "\(Dream(Passport|Key)[ /]([0-9.]{1,10}); ([A-Z.a-z/]{1,50})\)" => "\\1",
444     "\(Planetweb[ /]([0-9.a-z]{1,10})" => "\\1"
445     ),
446     "uri" => "http://css.vis.ne.jp/dp-agent.shtml"
447     ),
448     "dxbrowser" => array(
449     "icon" => "question",
450     "title" => "DX-Browser",
451     "rule" => array(
452     "DX-Browser ([0-9.]{1,10})" => "\\1"
453     ),
454     "uri" => "http://www.wankoo.org/index.php?page=Software.DXBrowser"
455     ),
456     "edbrowse" => array(
457     "icon" => "question",
458     "title" => "edbrowse",
459     "rule" => array(
460     "edbrowse/([0-9.]{1,10})" => "\\1"
461     ),
462     "uri" => "http://www.eklhad.net/linux/app/"
463     ),
464     "elinks" => array(
465     "icon" => "links",
466     "title" => "ELinks",
467     "rule" => array(
468     "ELinks[ /][\(]*([0-9.]{1,10})" => "\\1"
469     ),
470     "uri" => "http://elinks.or.cz/"
471     ),
472     "emacs" => array(
473     "icon" => "question",
474     "title" => "Emacs/w3s",
475     "rule" => array(
476     "Emacs-W3/([0-9.]{1,10}(pre)?)" => "\\1"
477     ),
478     "uri" => "http://www.gnu.org/software/w3/"
479     ),
480     "endo" => array(
481     "icon" => "endo",
482     "title" => "endo",
483     "rule" => array(
484     "^endo/([0-9.]{1,10})" => "\\1"
485     ),
486     "uri" => "http://kula.jp/endo"
487     ),
488     "epiphany" => array(
489     "icon" => "epiphany",
490     "title" => "Epiphany",
491     "rule" => array(
492     "Epiphany/([0-9.]{1,10})" => "\\1",
493     "epiphany-webkit" => ""
494     ),
495     "uri" => "http://www.gnome.org/projects/epiphany/"
496     ),
497     "eudoraweb" => array(
498     "icon" => "mobile",
499     "title" => "EudoraWeb",
500     "rule" => array(
501     "EudoraWeb[ /]([0-9.]{1,10})" => "\\1"
502     ),
503     "uri" => "http://www.eudora.com/internetsuite/eudoraweb.html"
504     ),
505     "fennec" => array(
506     "icon" => "fennec",
507     "title" => "Fennec",
508     "rule" => array(
509     "Fennec[ /]([0-9.a-z]{1,10})" => "\\1"
510     ),
511     "uri" => "http://www.mozilla.org/projects/fennec/1.0a2/releasenotes/"
512     ),
513     "firebird" => array(
514     "icon" => "firebird",
515     "title" => "Firebird",
516     "rule" => array(
517     "Firebird( Browser)?/([0-9.+]{1,10})" => "\\2"
518     ),
519     "uri" => "http://www.mozilla.org/"
520     ),
521     "firescape" => array(
522     "icon" => "firescape",
523     "title" => "Firescape",
524     "rule" => array(
525     "Firescape/([0-9.+]{1,10})" => "\\1"
526     ),
527     "uri" => ""
528     ),
529     "flock" => array(
530     "icon" => "flock",
531     "title" => "Flock",
532     "rule" => array(
533     "Flock/([0-9a-z.]{1,10})" => "\\1",
534     "Sulfur/([0-9a-z.]{1,10})" => "\\1"
535     ),
536     "uri" => "http://www.flock.com/"
537     ),
538     "fluid" => array(
539     "icon" => "fluid",
540     "title" => "Fluid",
541     "rule" => array(
542     "Fluid[ /]([0-9.]{1,10})" => "\\1"
543     ),
544     "uri" => "http://www.fluidapp.com"
545     ),
546     "freshdownload" => array(
547     "icon" => "freshdownload",
548     "title" => "FreshDownload",
549     "rule" => array(
550     "FreshDownload/([0-9.]{1,10})" => "\\1"
551     ),
552     "uri" => "http://www.freshdevices.com/"
553     ),
554     "frontpage" => array(
555     "icon" => "frontpage",
556     "title" => "Frontpage",
557     "rule" => array(
558     "FrontPage[ /]([0-9.+]{1,10})" => "\\1"
559     ),
560     "uri" => "http://www.microsoft.com/"
561     ),
562     "galeon" => array(
563     "icon" => "galeon",
564     "title" => "Galeon",
565     "rule" => array(
566     "galeon/([0-9.]{1,10})" => "\\1"
567     ),
568     "uri" => "http://galeon.sourceforge.net/"
569     ),
570     "hgrepurl" => array(
571     "icon" => "oreilly",
572     "title" => "O'Reilly tutorial",
573     "rule" => array(
574     "hgrepurl/([0-9.]{1,10})" => "\\1"
575     ),
576     "uri" => "http://www.oreilly.com/openbook/webclient/"
577     ),
578     "hotjava" => array(
579     "icon" => "hotjava",
580     "title" => "HotJava",
581     "rule" => array(
582     "^HotJava[ /]([0-9.]{1,10})" => "\\1"
583     ),
584     "uri" => "http://java.sun.com/products/archive/hotjava/index.html"
585     ),
586     "hv3" => array(
587     "icon" => "question",
588     "title" => "Hv3",
589     "rule" => array(
590     " Hv3[ /]([0-9.a-z]{1,10})" => "\\1"
591     ),
592     "uri" => "http://tkhtml.tcl.tk/hv3.html"
593     ),
594     "ibis" => array(
595     "icon" => "question",
596     "title" => "ibisBrowser",
597     "rule" => array(
598     "ibisBrowser" => ""
599     ),
600     "uri" => ""
601     ),
602     "ibrowse" => array(
603     "icon" => "ibrowse",
604     "title" => "IBrowse",
605     "rule" => array(
606     "ibrowse[ /]([0-9.]{1,10})" => "\\1"
607     ),
608     "uri" => "http://www.ibrowse-dev.net/"
609     ),
610     "icab" => array(
611     "icon" => "icab",
612     "title" => "iCab",
613     "rule" => array(
614     "icab[/ ]([0-9.]{1,10})" => "\\1"
615     ),
616     "uri" => "http://www.icab.de/"
617     ),
618     "ice" => array(
619     "icon" => "ice",
620     "title" => "ICEbrowser",
621     "rule" => array(
622     "ICE[ ]?Browser/v?([0-9._]{1,10})" => "\\1"
623     ),
624     "uri" => "http://www.borland.com/jbuilder/"
625     ),
626     "iceape" => array(
627     "icon" => "iceape",
628     "title" => "Iceape",
629     "rule" => array(
630     "Iceape/([0-9a-z.]{1,10})" => "\\1"
631     ),
632     "uri" => "http://packages.debian.org/source/iceape"
633     ),
634     "icecat" => array(
635     "icon" => "icecat",
636     "title" => "IceCat",
637     "rule" => array(
638     "IceCat/([0-9a-z.]{1,10})" => "\\1"
639     ),
640     "uri" => "http://www.gnu.org/software/gnuzilla/"
641     ),
642     "iceweasel" => array(
643     "icon" => "iceweasel",
644     "title" => "Iceweasel",
645     "rule" => array(
646     "Iceweasel/([0-9.+]{1,10})" => "\\1"
647     ),
648     "uri" => "http://www.geticeweasel.org/"
649     ),
650     "iexplorepocket" => array(
651     "icon" => "mobile",
652     "title" => "Internet Explorer Pocket",
653     "rule" => array(
654     "Microsoft Pocket Internet Explorer[ /]([0-9.]{1,10})" => "\\1",
655     "MSPIE[ /]([0-9.]{1,10})" => "\\1"
656     ),
657     "uri" => ""
658     ),
659     "ipeng" => array(
660     "icon" => "ipeng",
661     "title" => "iPeng",
662     "rule" => array(
663     "^iPeng.*(iPhone|iPad)[ /]([0-9.]{1,10})" => "\\2"
664     ),
665     "uri" => "http://penguinlovesmusic.de/"
666     ),
667     "irider" => array(
668     "icon" => "irider",
669     "title" => "iRider",
670     "rule" => array(
671     "iRider[/ ]([0-9.]{1,10})" => "\\1"
672     ),
673     "uri" => ""
674     ),
675     "iron" => array(
676     "icon" => "iron",
677     "title" => "Iron",
678     "rule" => array(
679     "Iron/([0-9.]{1,10})" => "\\1"
680     ),
681     "uri" => "http://www.srware.net/"
682     ),
683     "isilox" => array(
684     "icon" => "isilox",
685     "title" => "iSiloX",
686     "rule" => array(
687     "iSilox/([0-9.]{1,10})" => "\\1"
688     ),
689     "uri" => ""
690     ),
691     "kazehakase" => array(
692     "icon" => "kazehakase",
693     "title" => "Kazehakase",
694     "rule" => array(
695     "Kazehakase[ /]([0-9a-z.]{1,10})" => "\\1",
696     "kazehakase" => ""
697     ),
698     "uri" => "http://kazehakase.sourceforge.jp/20031201.html"
699     ),
700     "kkman" => array(
701     "icon" => "kkman",
702     "title" => "KKman",
703     "rule" => array(
704     "KKman[ /]?([0-9.]{1,10})" => "\\1"
705     ),
706     "uri" => "http://www.kkman.com.tw/"
707     ),
708     "klondike" => array(
709     "icon" => "question",
710     "title" => "Klondike",
711     "rule" => array(
712     "Klondike[ /]([0-9.]{1,10})" => "\\1"
713     ),
714     "uri" => ""
715     ),
716     "k-meleon" => array(
717     "icon" => "k-meleon",
718     "title" => "K-Meleon",
719     "rule" => array(
720     "K-Meleon[ /]([0-9.]{1,10})" => "\\1"
721     ),
722     "uri" => "http://kmeleon.sourceforge.net/"
723     ),
724     "k-ninja" => array(
725     "icon" => "k-ninja",
726     "title" => "K-Ninja",
727     "rule" => array(
728     "K-Ninja[ /]([0-9.]{1,10})" => "\\1"
729     ),
730     "uri" => "http://www.geocities.com/grenleef/"
731     ),
732     "konqueror" => array(
733     "icon" => "konqueror",
734     "title" => "Konqueror",
735     "rule" => array(
736     "konqueror/([0-9.]{1,10})" => "\\1"
737     ),
738     "uri" => "http://www.konqueror.org/"
739     ),
740     "kylo" => array(
741     "icon" => "kylo",
742     "title" => "Kylo",
743     "rule" => array(
744     "Kylo/([0-9.]{1,10})" => "\\1"
745     ),
746     "uri" => "http://kylo.tv/"
747     ),
748     "liferea" => array(
749     "icon" => "liferea",
750     "title" => "Liferea",
751     "rule" => array(
752     "Liferea[ /]([0-9a-z.\-]{1,10})" => "\\1"
753     ),
754     "uri" => "http://liferea.sf.net/"
755     ),
756     "links" => array(
757     "icon" => "links",
758     "title" => "Links",
759     "rule" => array(
760     "Links[ /]\(([0-9.]{1,10})" => "\\1"
761     ),
762     "uri" => "http://artax.karlin.mff.cuni.cz/~mikulas/links"
763     ),
764     "lobo" => array(
765     "icon" => "lobo",
766     "title" => "Lobo",
767     "rule" => array(
768     "Lobo/([0-9.]{1,10})" => "\\1"
769     ),
770     "uri" => "http://lobobrowser.org/"
771     ),
772     "lotus" => array(
773     "icon" => "lotus",
774     "title" => "Lotus Notes",
775     "rule" => array(
776     "Lotus[ \-]?Notes[ /]([0-9.]{1,10})" => "\\1"
777     ),
778     "uri" => ""
779     ),
780     "lunascape" => array(
781     "icon" => "lunascape",
782     "title" => "Lunascape",
783     "rule" => array(
784     "Lunascape[ /]([0-9a-z.]{1,10})" => "\\1"
785     ),
786     "uri" => ""
787     ),
788     "lynx" => array(
789     "icon" => "lynx",
790     "title" => "Lynx",
791     "rule" => array(
792     "lynx/([0-9a-z.]{1,10})" => "\\1"
793     ),
794     "uri" => "http://lynx.browser.org/"
795     ),
796     "maxthon" => array(
797     "icon" => "maxthon",
798     "title" => "Maxthon",
799     "rule" => array(
800     "Maxthon[ /]([0-9.]{1,10})" => "\\1",
801     "Maxthon[\);]" => ""
802     ),
803     "uri" => ""
804     ),
805     "mbrowser" => array(
806     "icon" => "mbrowser",
807     "title" => "mBrowser",
808     "rule" => array(
809     "mBrowser[ /]([0-9.]{1,10})" => "\\1"
810     ),
811     "uri" => ""
812     ),
813     "mediaplayer" => array(
814     "icon" => "wmp10",
815     "title" => "Media Player",
816     "rule" => array(
817     "NSPlayer[ /]([0-9.]{1,10})" => "\\1",
818     "WMFSDK[ /]([0-9.]{1,10})" => "\\1",
819     "Windows-Media-Player[ /]([0-9.]{1,10})" => "\\1"
820     ),
821     "uri" => ""
822     ),
823     "mib" => array(
824     "icon" => "mobile",
825     "title" => "Mobile Internet Browser",
826     "rule" => array(
827     " MIB[ /]([0-9.]{1,10})" => "\\1"
828     ),
829     "uri" => "http://www.motorola.com/content.jsp?globalObjectId=1827-4343"
830     ),
831     "midori" => array(
832     "icon" => "midori",
833     "title" => "Midori",
834     "rule" => array(
835     "midori[ /]([0-9.]{1,10})" => "\\1",
836     "midori" => ""
837     ),
838     "uri" => "http://software.twotoasts.de/"
839     ),
840     "minimo" => array(
841     "icon" => "mozilla",
842     "title" => "Minimo",
843     "rule" => array(
844     "Minimo[ /]([0-9.]{1,10})" => "\\1"
845     ),
846     "uri" => "http://www.mozilla.org/projects/minimo/"
847     ),
848     "miro" => array(
849     "icon" => "miro",
850     "title" => "Miro",
851     "rule" => array(
852     "Miro[ /]([0-9.]{1,10})" => "\\1"
853     ),
854     "uri" => "http://www.getmiro.com/"
855     ),
856     "mnenhy" => array(
857     "icon" => "mnenhy",
858     "title" => "Mnenhy",
859     "rule" => array(
860     "Mnenhy[ /]([0-9.]{1,10})" => "\\1"
861     ),
862     "uri" => "http://mnenhy.mozdev.org/"
863     ),
864     "mosaic" => array(
865     "icon" => "mosaic",
866     "title" => "Mosaic",
867     "rule" => array(
868     "mosaic[ /]([0-9.]{1,10})" => "\\1"
869     ),
870     "uri" => ""
871     ),
872     "mpc" => array(
873     "icon" => "mpc",
874     "title" => "Media Player Classic",
875     "rule" => array(
876     "Media Player Classic" => ""
877     ),
878     "uri" => "http://sourceforge.net/projects/guliverkli/"
879     ),
880     "mplayer" => array(
881     "icon" => "mplayer",
882     "title" => "MPlayer",
883     "rule" => array(
884     "^MPlayer[ /]([0-9.]{1,10})" => "\\1"
885     ),
886     "uri" => "http://www.mplayerhq.hu"
887     ),
888     "msn" => array(
889     "icon" => "msn",
890     "title" => "MSN Explorer",
891     "rule" => array(
892     "MSN[ /]([0-9.]{1,10})" => "\\1"
893     ),
894     "uri" => "http://www.mplayerhq.hu"
895     ),
896     "multibrowser" => array(
897     "icon" => "multibrowser",
898     "title" => "Multi-Browser",
899     "rule" => array(
900     "Multi-Browser[ /]([0-9.]{1,10})" => "\\1"
901     ),
902     "uri" => "http://archive.ncsa.uiuc.edu/SDG/Software/XMosaic/"
903     ),
904     "myie2" => array(
905     "icon" => "myie2",
906     "title" => "MyIE2",
907     "rule" => array(
908     " MyIE2[\);]" => ""
909     ),
910     "uri" => ""
911     ),
912     "nautilus" => array(
913     "icon" => "nautilus",
914     "title" => "Nautilus",
915     "rule" => array(
916     "(gnome[ \-]?vfs|nautilus)/([0-9.]{1,10})" => "\\2"
917     ),
918     "uri" => ""
919     ),
920     "netnewswire" => array(
921     "icon" => "netnewswire",
922     "title" => "NetNewsWire",
923     "rule" => array(
924     "NetNewsWire[ /]([0-9.]{1,10})" => "\\1"
925     ),
926     "uri" => "http://ranchero.com/netnewswire/"
927     ),
928     "netsurf" => array(
929     "icon" => "netsurf",
930     "title" => "NetSurf",
931     "rule" => array(
932     "Netsurf[ /]?([0-9.]{1,10})?" => "\\1"
933     ),
934     "uri" => ""
935     ),
936     "netcaptor" => array(
937     "icon" => "netcaptor",
938     "title" => "Netcaptor",
939     "rule" => array(
940     "netcaptor[ /]([0-9.]{1,10})" => "\\1"
941     ),
942     "uri" => ""
943     ),
944     "netfront" => array(
945     "icon" => "netfront",
946     "title" => "Netfront",
947     "rule" => array(
948     "NetFront[ /]([0-9.]{1,10})" => "\\1"
949     ),
950     "uri" => "http://www.access-company.com/"
951     ),
952     "netpositive" => array(
953     "icon" => "netpositive",
954     "title" => "NetPositive",
955     "rule" => array(
956     "netpositive[ /]([0-9.]{1,10})" => "\\1"
957     ),
958     "uri" => "http://browsers.evolt.org/?netpositive/"
959     ),
960     "nexus" => array(
961     "icon" => "question",
962     "title" => "Nexus",
963     "rule" => array(
964     "^Nexus" => ""
965     ),
966     "uri" => "http://browsers.evolt.org/"
967     ),
968     "offbyone" => array(
969     "icon" => "offbyone",
970     "title" => "OffByOne",
971     "rule" => array(
972     "OffByOne" => ""
973     ),
974     "uri" => "http://www.offbyone.com/"
975     ),
976     "office" => array(
977     "icon" => "office",
978     "title" => "Office",
979     "rule" => array(
980     "^Microsoft Data Access Internet Publishing Provider (Protocol Discovery|Cache Manager|DAV)" => ""
981     ),
982     "uri" => "http://www.office.microsoft.com/"
983     ),
984     "omniweb" => array(
985     "icon" => "omniweb",
986     "title" => "OmniWeb",
987     "rule" => array(
988     "omniweb/[ a-z]?([0-9.]{1,10})$" => "\\1",
989     "OmniWeb/[ a-z]?([0-9.]{1,10})" => "\\1"
990     ),
991     "uri" => ""
992     ),
993     "openwave" => array(
994     "icon" => "mobile",
995     "title" => "OpenWave",
996     "rule" => array(
997     "OPWV-SDK UP\.Browser[ /]([0-9.]{1,10})" => "\\1"
998     ),
999     "uri" => "http://www.openwave.com/us/products/mobile/device_products/mobile_browser/index.htm"
1000     ),
1001     "operamini" => array(
1002     "icon" => "opera",
1003     "title" => "Opera Mini",
1004     "rule" => array(
1005     "opera mini[ /]([0-9.]{1,10})" => "\\1"
1006     ),
1007     "uri" => "http://www.opera.com/"
1008     ),
1009     "opera" => array(
1010     "icon" => "opera",
1011     "title" => "Opera",
1012     "rule" => array(
1013     "opera.+Version[ /]([x0-9.]{1,10})" => "\\1",
1014     "opera[ /]([0-9.]{1,10})" => "\\1"
1015     ),
1016     "uri" => "http://www.opera.com/"
1017     ),
1018     "orca" => array(
1019     "icon" => "question",
1020     "title" => "Orca",
1021     "rule" => array(
1022     "Orca Browser \(http://www.orcabrowser.com\)" => "\\1"
1023     ),
1024     "uri" => "http://www.orcabrowser.com"
1025     ),
1026     "oregano" => array(
1027     "icon" => "oregano",
1028     "title" => "Oregano",
1029     "rule" => array(
1030     "Oregano[0-9]?[ /]([0-9.]{1,10})" => "\\1"
1031     ),
1032     "uri" => "http://www.castle.org.uk/oregano/"
1033     ),
1034     "palmsource" => array(
1035     "icon" => "palmsource",
1036     "title" => "PalmSource Web Browser",
1037     "rule" => array(
1038     "PalmSource" => "",
1039     "Palm-Arz1" => ""
1040     ),
1041     "uri" => "http://www.palmos.com/dev/tech/palmos5/webbrowser.html"
1042     ),
1043     "paparazzi" => array(
1044     "icon" => "question",
1045     "title" => "Paparazzi",
1046     "rule" => array(
1047     "Paparazzi!/([0-9.]{1,10})" => "\\1"
1048     ),
1049     "uri" => ""
1050     ),
1051     "phaseout" => array(
1052     "icon" => "phaseout",
1053     "title" => "PhaseOut",
1054     "rule" => array(
1055     "www\.phaseout\.net" => ""
1056     ),
1057     "uri" => "http://www.phaseout.net/"
1058     ),
1059     "plainview" => array(
1060     "icon" => "plainview",
1061     "title" => "Plainview",
1062     "rule" => array(
1063     "Plainview[ /]([0-9.]{1,10})" => "\\1"
1064     ),
1065     "uri" => "http://www.barbariangroup.com/software/plainview"
1066     ),
1067     "plink" => array(
1068     "icon" => "plink",
1069     "title" => "PLink",
1070     "rule" => array(
1071     "PLink[ /]([0-9a-z.]{1,10})" => "\\1"
1072     ),
1073     "uri" => ""
1074     ),
1075     "plucker" => array(
1076     "icon" => "mobile",
1077     "title" => "Plucker",
1078     "rule" => array(
1079     "Plucker[ /](Py-)?([0-9.]{1,10})" => "\\1"
1080     ),
1081     "uri" => "http://www.openwave.com/us/products/mobile/device_products/mobile_browser/index.htm"
1082     ),
1083     "phoenix" => array(
1084     "icon" => "phoenix",
1085     "title" => "Phoenix",
1086     "rule" => array(
1087     "Phoenix/([0-9.+]{1,10})" => "\\1"
1088     ),
1089     "uri" => ""
1090     ),
1091     "phped" => array(
1092     "icon" => "question",
1093     "title" => "PHPEd",
1094     "rule" => array(
1095     "PHPEd Version[ /]([0-9.]{1,10})" => "\\1"
1096     ),
1097     "uri" => ""
1098     ),
1099     "printsmart" => array(
1100     "icon" => "question",
1101     "title" => "HP Web PrintSmart",
1102     "rule" => array(
1103     "HP Web PrintSmart ([0-9.a-z]{1,10})" => "\\1"
1104     ),
1105     "uri" => ""
1106     ),
1107     "prism" => array(
1108     "icon" => "prism",
1109     "title" => "Mozilla Prism",
1110     "rule" => array(
1111     "prism/([0-9.+]{1,10})" => "\\1"
1112     ),
1113     "uri" => "http://prism.mozillalabs.com/"
1114     ),
1115     "proxomitron" => array(
1116     "icon" => "proxomitron",
1117     "title" => "Proxomitron",
1118     "rule" => array(
1119     "(Space( )?)?bison/([0-9.]{1,10})" => "\\1"
1120     ),
1121     "uri" => "http://www.proxomitron.info/"
1122     ),
1123     "psp" => array(
1124     "icon" => "question",
1125     "title" => "PlayStation Portable",
1126     "rule" => array(
1127     "PSP \(PlayStation Portable\); ([0-9.]{1,10})" => "\\1"
1128     ),
1129     "uri" => ""
1130     ),
1131     "puf" => array(
1132     "icon" => "question",
1133     "title" => "Parallel URL Fetcher",
1134     "rule" => array(
1135     "^puf[ /]([0-9.]{1,10})" => "\\1"
1136     ),
1137     "uri" => "http://puf.sourceforge.net/"
1138     ),
1139     "quicktime" => array(
1140     "icon" => "quicktime",
1141     "title" => "QuickTime",
1142     "rule" => array(
1143     "QuickTime..qtver.([0-9.]{1,10})" => "\\1",
1144     "qtver.([0-9.]{1,10})" => "\\1"
1145     ),
1146     "uri" => "http://www.apple.com/quicktime/"
1147     ),
1148     "realplayer" => array(
1149     "icon" => "realplayer",
1150     "title" => "Real Player",
1151     "rule" => array(
1152     "RealPlayer/([0-9.+]{1,10})" => "\\1",
1153     "^Mozilla/([0-9.+]{1,10}).*\(R1 1.5\)\)" => "",
1154     "RMA/([0-9.+]{1,10})" => ""
1155     ),
1156     "uri" => "http://www.realplayer.com"
1157     ),
1158     "reeder" => array(
1159     "icon" => "reeder",
1160     "title" => "Reeder",
1161     "rule" => array(
1162     "Reeder/([0-9.+]{1,10})" => "\\1"
1163     ),
1164     "uri" => "http://www.reederapp.com/"
1165     ),
1166     "retawq" => array(
1167     "icon" => "question",
1168     "title" => "retawq",
1169     "rule" => array(
1170     "retawq/([0-9.]{1,10})" => "\\1"
1171     ),
1172     "uri" => "http://retawq.sourceforge.net/"
1173     ),
1174     "safexplorer" => array(
1175     "icon" => "question",
1176     "title" => "Safexplorer",
1177     "rule" => array(
1178     "SAFEXPLORER TL" => ""
1179     ),
1180     "uri" => "http://www.safexplorer.com/"
1181     ),
1182     "sage" => array(
1183     "icon" => "sage",
1184     "title" => "Sage",
1185     "rule" => array(
1186     "\(Sage\)" => ""
1187     ),
1188     "uri" => "http://sage.mozdev.org/"
1189     ),
1190     "seamonkey" => array(
1191     "icon" => "seamonkey",
1192     "title" => "Seamonkey",
1193     "rule" => array(
1194     "Seamonkey[ \-/]([0-9a-z.]{1,10})" => "\\1"
1195     ),
1196     "uri" => "http://www.seamonkey-project.org/"
1197     ),
1198     "securewebbrowser" => array(
1199     "icon" => "question",
1200     "title" => "HP Secure Web Browser",
1201     "rule" => array(
1202     "SWB[ /]V?([0-9.]{1,10}) \(HP\)" => "\\1"
1203     ),
1204     "uri" => "http://h71000.www7.hp.com/openvms/products/ips/cswb/cswb.html"
1205     ),
1206     "shareaza" => array(
1207     "icon" => "shareaza",
1208     "title" => "Shareaza",
1209     "rule" => array(
1210     "Shareaza[ /]v?([0-9.]{1,10})" => "\\1"
1211     ),
1212     "uri" => "http://www.shareaza.com/"
1213     ),
1214     "shiira" => array(
1215     "icon" => "shiira",
1216     "title" => "Shiira",
1217     "rule" => array(
1218     "Shiira/([0-9.]{1,10})" => "\\1",
1219     " Shiira " => ""
1220     ),
1221     "uri" => "http://shiira.jp/en.php"
1222     ),
1223     "sitekiosk" => array(
1224     "icon" => "sitekiosk",
1225     "title" => "SiteKiosk",
1226     "rule" => array(
1227     "SiteKiosk[ /]([0-9.]{1,10})" => "\\1"
1228     ),
1229     "uri" => "http://www.sitekiosk.com/"
1230     ),
1231     "sleipnir" => array(
1232     "icon" => "sleipnir",
1233     "title" => "Sleipnir",
1234     "rule" => array(
1235     "Sleipnir( Version)?[ /]([0-9a-z.]{1,10})" => "\\2"
1236     ),
1237     "uri" => ""
1238     ),
1239     "slimbrowser" => array(
1240     "icon" => "slimbrowser",
1241     "title" => "SlimBrowser",
1242     "rule" => array(
1243     "Slimbrowser" => ""
1244     ),
1245     "uri" => ""
1246     ),
1247     "smartbro" => array(
1248     "icon" => "smartbro",
1249     "title" => "Smart Bro",
1250     "rule" => array(
1251     "Smart Bro[ /]?([0-9.]{1,10})?" => "\\1"
1252     ),
1253     "uri" => "http://www.smartbro.com/"
1254     ),
1255     "songbird" => array(
1256     "icon" => "songbird",
1257     "title" => "Songbird",
1258     "rule" => array(
1259     "Songbird[/ ]([0-9.]{1,10})" => "\\1"
1260     ),
1261     "uri" => "http://www.songbirdnest.com/"
1262     ),
1263     "spectruminternetsuite" => array(
1264     "icon" => "question",
1265     "title" => "Spectrum Internet Suite",
1266     "rule" => array(
1267     " SIS ([0-9.]{1,10})" => "\\1"
1268     ),
1269     "uri" => "http://sis.gwlink.net/"
1270     ),
1271     "sputnik" => array(
1272     "icon" => "sputnik",
1273     "title" => "Sputnik",
1274     "rule" => array(
1275     "Sputnik[ /]([0-9.]{1,10})" => "\\1"
1276     ),
1277     "uri" => ""
1278     ),
1279     "squid" => array(
1280     "icon" => "squid",
1281     "title" => "Squid Proxy",
1282     "rule" => array(
1283     "^Cafi[ /]([0-9.]{1,10})" => "\\1",
1284     "SquidClamAV_Redirector[ /]([0-9.]{1,10})" => ""
1285     ),
1286     "uri" => ""
1287     ),
1288     "staroffice" => array(
1289     "icon" => "staroffice",
1290     "title" => "StarOffice",
1291     "rule" => array(
1292     "staroffice[ /]([0-9.]{1,10})" => "\\1"
1293     ),
1294     "uri" => ""
1295     ),
1296     "stainless" => array(
1297     "icon" => "stainless",
1298     "title" => "Stainless",
1299     "rule" => array(
1300     "Stainless[ /]([0-9.]{1,10})" => "\\1"
1301     ),
1302     "uri" => "http://www.stainlessapp.com"
1303     ),
1304     "strata" => array(
1305     "icon" => "strata",
1306     "title" => "Strata",
1307     "rule" => array(
1308     "Strata[/ ]([0-9.]{1,10})" => "\\1"
1309     ),
1310     "uri" => "https://www.kirix.com/"
1311     ),
1312     "sunrise" => array(
1313     "icon" => "sunrise",
1314     "title" => "Sunrise",
1315     "rule" => array(
1316     "SunriseBrowser[ /]([0-9.]{1,10})" => "\\1",
1317     "Sunrise[ /]([0-9.]{1,10})" => "\\1",
1318     "Sunrise2[ /]([0-9.]{1,10})" => "\\1"
1319     ),
1320     "uri" => "http://www.sunrisebrowser.com/"
1321     ),
1322     "sunrisefeeds" => array(
1323     "icon" => "question",
1324     "title" => "Sunrise Feeds",
1325     "rule" => array(
1326     "^Sunrise[ /]([0-9.]{1,10})" => "\\1"
1327     ),
1328     "uri" => ""
1329     ),
1330     "swift" => array(
1331     "icon" => "swift",
1332     "title" => "Swift",
1333     "rule" => array(
1334     "Swift[ /]([0-9.]{1,10})" => "\\1"
1335     ),
1336     "uri" => "http://www.getswift.org/"
1337     ),
1338     "swiftfox" => array(
1339     "icon" => "swiftfox",
1340     "title" => "Swiftfox",
1341     "rule" => array(
1342     "Swiftfox[ /]?([0-9.]{1,10})?" => "\\1"
1343     ),
1344     "uri" => "http://getswiftfox.com/"
1345     ),
1346     "sylera" => array(
1347     "icon" => "question",
1348     "title" => "Sylera",
1349     "rule" => array(
1350     "Sylera[/ ]([0-9.]{1,10})" => "\\1"
1351     ),
1352     "uri" => "http://www.zawameki.net/izmi/prog/sylera_en.html"
1353     ),
1354     "syndirella" => array(
1355     "icon" => "question",
1356     "title" => "Syndirella",
1357     "rule" => array(
1358     "Syndirella[/ ]([0-9.]{1,10})" => "\\1"
1359     ),
1360     "uri" => "http://sourceforge.net/projects/syndirella/"
1361     ),
1362     "thunderbird" => array(
1363     "icon" => "thunderbird",
1364     "title" => "Thunderbird",
1365     "rule" => array(
1366     "Thunderbird[ /]([0-9a-z.]{1,10})" => "\\1"
1367     ),
1368     "uri" => ""
1369     ),
1370     "tonline" => array(
1371     "icon" => "tonline",
1372     "title" => "T-Online",
1373     "rule" => array(
1374     "^T-Online Browser" => "\\1"
1375     ),
1376     "uri" => ""
1377     ),
1378     "upbrowser" => array(
1379     "icon" => "upbrowser",
1380     "title" => "UP.Browser",
1381     "rule" => array(
1382     "UP\.Browser[ /]([0-9.]{1,10})" => "\\1",
1383     "UP\.Link[ /]([0-9.]{1,10})" => "\\1"
1384     ),
1385     "uri" => ""
1386     ),
1387     "uzbl" => array(
1388     "icon" => "uzbl",
1389     "title" => "Uzbl",
1390     "rule" => array(
1391     "Uzbl" => ""
1392     ),
1393     "uri" => "http://www.uzbl.org/"
1394     ),
1395     "vienna" => array(
1396     "icon" => "vienna",
1397     "title" => "Vienna",
1398     "rule" => array(
1399     "Vienna[ /]([0-9.]{1,10})" => "\\1"
1400     ),
1401     "uri" => "http://vienna-rss.sourceforge.net/"
1402     ),
1403     "vlc" => array(
1404     "icon" => "vlc",
1405     "title" => "VLC",
1406     "rule" => array(
1407     "^VLC media player - version ([0-9.]{1,10})" => "\\1"
1408     ),
1409     "uri" => "http://www.videolan.org/vlc/"
1410     ),
1411     "voyager" => array(
1412     "icon" => "voyager",
1413     "title" => "Voyager",
1414     "rule" => array(
1415     "voyager[ /]([0-9.]{1,10})" => "\\1",
1416     "AmigaVoyager" => "",
1417     " Voyager" => ""
1418     ),
1419     "uri" => "http://v3.vapor.com/"
1420     ),
1421     "w3clinemode" => array(
1422     "icon" => "question",
1423     "title" => "W3C Line Mode",
1424     "rule" => array(
1425     "W3CLineMode/([0-9.]{1,10})" => "\\1"
1426     ),
1427     "uri" => "http://www.w3.org/LineMode"
1428     ),
1429     "w3m" => array(
1430     "icon" => "w3m",
1431     "title" => "w3m",
1432     "rule" => array(
1433     "w3m/([0-9.]{1,10})" => "\\1"
1434     ),
1435     "uri" => ""
1436     ),
1437     "wannabe" => array(
1438     "icon" => "question",
1439     "title" => "WannaBe",
1440     "rule" => array(
1441     "^WannaBe" => ""
1442     ),
1443     "uri" => "http://mindstory.com/wb2/"
1444     ),
1445     "warrior" => array(
1446     "icon" => "warrior",
1447     "title" => "Warrior",
1448     "rule" => array(
1449     "^Warrior" => ""
1450     ),
1451     "uri" => ""
1452     ),
1453     "webcapture" => array(
1454     "icon" => "question",
1455     "title" => "WebCapture (Adobe)",
1456     "rule" => array(
1457     "WebCapture[ /]([0-9.]{1,10})" => "\\1"
1458     ),
1459     "uri" => ""
1460     ),
1461     "webtv" => array(
1462     "icon" => "webtv",
1463     "title" => "Webtv",
1464     "rule" => array(
1465     "webtv[ /]([0-9.]{1,10})" => "\\1",
1466     "webtv" => ""
1467     ),
1468     "uri" => ""
1469     ),
1470     "winamp" => array(
1471     "icon" => "winamp",
1472     "title" => "Winamp",
1473     "rule" => array(
1474     "^WinampMPEG[ /]([0-9.]{1,10})" => "\\1",
1475     "^Nullsoft Winamp3 version[ /]([0-9.a-z]{1,10})" => "\\1",
1476     "NSV Player" => ""
1477     ),
1478     "uri" => "http://www.winamp.com/"
1479     ),
1480     "wyzo" => array(
1481     "icon" => "wyzo",
1482     "title" => "Wyzo",
1483     "rule" => array(
1484     "Wyzo[ /]([0-9.]{1,10})" => "\\1"
1485     ),
1486     "uri" => "http://www.wyzo.com/"
1487     ),
1488     "xiino" => array(
1489     "icon" => "xiino",
1490     "title" => "Xiino",
1491     "rule" => array(
1492     "^Xiino[ /]([0-9a-z.]{1,10})" => "\\1"
1493     ),
1494     "uri" => "http://www.access-us-inc.com/"
1495     ),
1496     "xine" => array(
1497     "icon" => "xine",
1498     "title" => "xine",
1499     "rule" => array(
1500     "^xine[ /]([0-9.]{1,10})" => "\\1"
1501     ),
1502     "uri" => "http://xine.sourceforge.net/"
1503     ),
1504     "yahoomessenger" => array(
1505     "icon" => "yahoo",
1506     "title" => "Yahoo Messenger",
1507     "rule" => array(
1508     "^Y(!)*TunnelPro" => ""
1509     ),
1510     "uri" => "http://messenger.yahoo.com/"
1511     ),
1512     "zipcommander" => array(
1513     "icon" => "question",
1514     "title" => "ZipCommander",
1515     "rule" => array(
1516     "ZipCommander" => ""
1517     ),
1518     "uri" => "http://www.zipcommander.com/"
1519     ),
1520     "zootycoon2" => array(
1521     "icon" => "question",
1522     "title" => "Zoo Tycoon 2",
1523     "rule" => array(
1524     "Zoo Tycoon 2 Client" => ""
1525     ),
1526     "uri" => "http://www.zootycoon.com/"
1527     ),
1528     // Catch up for the originals, they got to stay in that order.
1529     "explorer" => array(
1530     "icon" => "explorer",
1531     "title" => "Explorer",
1532     "rule" => array(
1533     ".*MSIE 7.0.*Trident.*" => "text:8.0 (MSIE 7.0)", //special feature, to detect IE8 Compatibility mode
1534     "\(compatible; MSIE[ /]([0-9a-z.]{1,10})" => "\\1",
1535     "MSIE[ /]([0-9a-z.]{1,3})" => "\\1",
1536     "Internet Explorer[ /]([0-9.]{1,10})" => "\\1",
1537     "^Auto-Proxy Downloader" => ""
1538     ),
1539     "uri" => "http://www.microsoft.com/windows/ie/"
1540     ),
1541     "safari" => array(
1542     "icon" => "safari",
1543     "title" => "Safari",
1544     "rule" => array(
1545     "version/([0-9.]{1,10})(.*)safari" => "\\1",
1546     "Safari[ /]?([0-9.]{1,10})" => "\\1"
1547     ),
1548     "uri" => ""
1549     ),
1550     "netscape" => array(
1551     "icon" => "netscape",
1552     "title" => "Netscape",
1553     "rule" => array(
1554     "netscape[0-9]?/([0-9.]{1,10})" => "\\1",
1555     "navigator[0-9]?/([0-9.]{1,10})" => "\\1",
1556     "^mozilla/([0-4]\.[0-9.]{1,10})" => "\\1"
1557     ),
1558     "uri" => "http://www.netscape.com/"
1559     ),
1560     "firefox" => array(
1561     "icon" => "firefox",
1562     "title" => "Firefox",
1563     "rule" => array(
1564     "Firefox/([0-9.+]{1,10})" => "\\1",
1565     "BonEcho/([0-9.+]{1,10})" => "\\1", // Firefox 2.0 beta
1566     "GranParadiso/([0-9.+]{1,10})" => "\\1", // Firefox 3.0 alpha
1567     "Minefield/([0-9.+]{1,10})" => "\\1", // Firefox 3.0 beta
1568     "Shiretoko/([0-9a-z.+]{1,10})" => "\\1", // Firefox 3.1 alpha
1569     "Namoroka/([0-9a-z.+]{1,10})" => "\\1", // Firefox 3.6 beta
1570     "Firefox" => ""
1571     ),
1572     "uri" => "http://www.mozilla.org/projects/firefox/",
1573     "known" => array(
1574     "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1) Gecko/20061019 Firefox" => "Firefox nightly on Windows XP",
1575     "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl-NL; rv:1.7.5) Gecko/20041202 Firefox/1.0" => "Firefox 1.0 on Windows XP (dutch)",
1576     "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.6) Gecko/20050512 Firefox" => "Firefox 1.0.4 on Ubuntu Linux (AMD64)",
1577     "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.8) Gecko/20050609 Firefox/1.0.4" => "Firefox 1.0.4 on FreeBSD (i386)",
1578     "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.9) Gecko/20050711 Firefox/1.0.5" => "Firefox 1.0.5 on Slackware",
1579     "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6" => "Firefox 1.0.6 on Windows XP",
1580     "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-GB; rv:1.7.10) Gecko/20050717 Firefox/1.0.6" => "Firefox 1.0.6 on Mac OS X 10.4 PPC",
1581     "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7" => "Firefox 1.0.7 on Windows XP",
1582     "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7" => "Firefox 1.0.7 on Mac OS X 10.3 PPC",
1583     "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b4) Gecko/20050908 Firefox/1.4" => "Firefox 1.5 beta 1 on Windows XP",
1584     "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8b4) Gecko/20050908 Firefox/1.4" => "Firefox 1.5 beta 1 on Mac OS X 10.3 PPC",
1585     "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8) Gecko/20051107 Firefox/1.5" => "Firefox 1.5 on Windows XP",
1586     "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1" => "Firefox 1.5.0.1 on Windows XP",
1587     "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1" => "Firefox 1.5.0.1 on Windows Vista",
1588     "Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.9a1) Gecko/20051002 Firefox/1.6a1" => "1.6 alpha 1 on BeOS R5",
1589     "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20060321 Firefox/2.0a1" => "2.0 alpha 1 on Windows XP",
1590     "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1b1) Gecko/20060710 Firefox/2.0b1" => "2.0 beta 1 on Windows XP",
1591     "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1b2) Gecko/20060710 Firefox/2.0b2" => "2.0 beta 2 on Windows XP",
1592     "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1) Gecko/20060918 Firefox/2.0" => "2.0 on Windows XP"
1593     )
1594     ),
1595     "webkit" => array(
1596     "icon" => "webkit",
1597     "title" => "Webkit",
1598     "rule" => array(
1599     "AppleWebKit/([0-9.]{1,10}).*Gecko" => "\\1"
1600     ),
1601     "uri" => "http://webkit.org"
1602     ),
1603     "mozilla" => array(
1604     "icon" => "mozilla",
1605     "title" => "Mozilla",
1606     "rule" => array(
1607     "^mozilla/[5-9]\.[0-9.]{1,10}.+rv:([0-9a-z.+]{1,10})" => "\\1",
1608     "^mozilla/([5-9]\.[0-9a-z.]{1,10})" => "\\1",
1609     "GNUzilla/([0-9.+]{1,10})" => "\\1"
1610     ),
1611     "uri" => "",
1612     "known" => array(
1613     "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050511" => "Mozilla 1.7.9 on Linux (american english)",
1614     "Mozilla/5.0 (X11; U; Linux i686; cs-CZ; rv:1.7.12) Gecko/20050929" => "Mozilla 1.7.12 on Gentoo Linux"
1615     )
1616     ),
1617     "wap" => array(
1618     "icon" => "question",
1619     "title" => "WAP",
1620     "rule" => array(
1621     "Profile[ /]MIDP-([0-9.+]{1,10})" => "",
1622     "Configuration[ /]CLDC-([0-9.+]{1,10})" => "",
1623     "WAP" => "\\1",
1624     "SonyEricsson([0-9A-Z]{1,10})" => ""
1625     ),
1626     "uri" => ""
1627     ),
1628     // Things we don't know by now
1629     "other" => array(
1630     "icon" => "question",
1631     "title" => "other",
1632     "rule" => array(
1633     ".*" => ""
1634     )
1635     )
1636     );
1637     ?>