ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/BBClone/branches/0.6.1-RC1/lib/browser.php
Revision: 16
Committed: Thu Nov 21 13:07:39 2013 UTC (11 years ago) by matthys
Original Path: trunk/lib/browser.php
File size: 43931 byte(s)
Log Message:
Cleanup code.

File Contents

# Content
1 <?php
2 /* This file is part of BBClone (A PHP based Web Counter on Steroids)
3 *
4 * SVN FILE $Id$
5 *
6 * Copyright (C) 2001-2013, 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 ?>

Properties

Name Value
svn:keywords Id