1<?php 2 3namespace dokuwiki\plugin\statistics; 4 5/** 6 * Defines regular expressions for the most common search engines 7 */ 8class SearchEngines 9{ 10 /** @var array Search engine definitions with regex patterns and metadata */ 11 protected array $searchEngines = [ 12 'google' => [ 13 'name' => 'Google', 14 'url' => 'http://www.google.com', 15 'regex' => '^(\w+\.)*google(\.co)?\.([a-z]{2,5})$', 16 'params' => ['q'] 17 ], 18 'bing' => [ 19 'name' => 'Bing', 20 'url' => 'http://www.bing.com', 21 'regex' => '^(\w+\.)*bing(\.co)?\.([a-z]{2,5})$', 22 'params' => ['q'] 23 ], 24 'yandex' => [ 25 'name' => 'Яндекс (Yandex)', 26 'url' => 'http://www.yandex.ru', 27 'regex' => '^(\w+\.)*yandex(\.co)?\.([a-z]{2,5})$', 28 'params' => ['query'] 29 ], 30 'yahoo' => [ 31 'name' => 'Yahoo!', 32 'url' => 'http://www.yahoo.com', 33 'regex' => '^(\w+\.)*yahoo\.com$', 34 'params' => ['p'] 35 ], 36 'naver' => [ 37 'name' => '네이버 (Naver)', 38 'url' => 'http://www.naver.com', 39 'regex' => '^search\.naver\.com$', 40 'params' => ['query'] 41 ], 42 'baidu' => [ 43 'name' => '百度 (Baidu)', 44 'url' => 'http://www.baidu.com', 45 'regex' => '^(\w+\.)*baidu\.com$', 46 'params' => ['wd', 'word', 'kw'] 47 ], 48 'ask' => [ 49 'name' => 'Ask', 50 'url' => 'http://www.ask.com', 51 'regex' => '^(\w+\.)*ask\.com$', 52 'params' => ['ask', 'q', 'searchfor'] 53 ], 54 'ask_search_results' => [ 55 'name' => 'Ask', 56 'url' => 'http://www.ask.com', 57 'regex' => '^(\w+\.)*search-results\.com$', 58 'params' => ['ask', 'q', 'searchfor'] 59 ], 60 'babylon' => [ 61 'name' => 'Babylon', 62 'url' => 'http://search.babylon.com', 63 'regex' => '^search\.babylon\.com$', 64 'params' => ['q'] 65 ], 66 'aol' => [ 67 'name' => 'AOL Search', 68 'url' => 'http://search.aol.com', 69 'regex' => '^(\w+\.)*(aol)?((search|recherches?|images|suche|alicesuche)\.)aol(\.co)?\.([a-z]{2,5})$', 70 'params' => ['query', 'q'] 71 ], 72 'duckduckgo' => [ 73 'name' => 'DuckDuckGo', 74 'url' => 'http://duckduckgo.com', 75 'regex' => '^duckduckgo\.com$', 76 'params' => ['q'] 77 ], 78 'google_avg' => [ 79 'name' => 'Google', 80 'url' => 'http://www.google.com', 81 'regex' => '^search\.avg\.com$', 82 'params' => ['q'] 83 ] 84 ]; 85 86 public function __construct() 87 { 88 // Add the internal DokuWiki search engine 89 $this->searchEngines['dokuwiki'] = [ 90 'name' => 'DokuWiki Internal Search', 91 'url' => wl(), 92 'regex' => '', 93 'params' => ['q'] 94 ]; 95 } 96 97} 98