Bot.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Http
  17. * @subpackage UserAgent
  18. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. */
  21. #require_once 'Zend/Http/UserAgent/AbstractDevice.php';
  22. /**
  23. * Bot browser type matcher
  24. *
  25. * @category Zend
  26. * @package Zend_Http
  27. * @subpackage UserAgent
  28. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  29. * @license http://framework.zend.com/license/new-bsd New BSD License
  30. */
  31. class Zend_Http_UserAgent_Bot extends Zend_Http_UserAgent_AbstractDevice
  32. {
  33. /**
  34. * User Agent Signatures
  35. *
  36. * @var array
  37. */
  38. protected static $_uaSignatures = array(
  39. // The most common ones.
  40. 'googlebot',
  41. 'msnbot',
  42. 'slurp',
  43. 'yahoo',
  44. // The rest, alphabetically.
  45. 'alexa',
  46. 'appie',
  47. 'archiver',
  48. 'ask jeeves',
  49. 'baiduspider',
  50. 'bot',
  51. 'crawl',
  52. 'crawler',
  53. 'curl',
  54. 'eventbox',
  55. 'facebookexternal',
  56. 'fast',
  57. 'feedfetcher-google',
  58. 'firefly',
  59. 'froogle',
  60. 'gigabot',
  61. 'girafabot',
  62. 'google',
  63. 'htdig',
  64. 'infoseek',
  65. 'inktomi',
  66. 'java',
  67. 'larbin',
  68. 'looksmart',
  69. 'mechanize',
  70. 'mediapartners-google',
  71. 'monitor',
  72. 'nambu',
  73. 'nationaldirectory',
  74. 'novarra',
  75. 'pear',
  76. 'perl',
  77. 'python',
  78. 'rabaz',
  79. 'radian',
  80. 'rankivabot',
  81. 'scooter',
  82. 'sogou web spider',
  83. 'spade',
  84. 'sphere',
  85. 'spider',
  86. 'technoratisnoop',
  87. 'tecnoseek',
  88. 'teoma',
  89. 'toolbar',
  90. 'transcoder',
  91. 'twitt',
  92. 'url_spider_sql',
  93. 'webalta crawler',
  94. 'webbug',
  95. 'webfindbot',
  96. 'wordpress',
  97. 'www.galaxy.com',
  98. 'yahoo! searchmonkey',
  99. 'yahoo! slurp',
  100. 'yandex',
  101. 'zyborg',
  102. );
  103. /**
  104. * Comparison of the UserAgent chain and browser signatures
  105. *
  106. * @param string $userAgent User Agent chain
  107. * @param array $server $_SERVER like param
  108. * @return bool
  109. */
  110. public static function match($userAgent, $server)
  111. {
  112. return self::_matchAgentAgainstSignatures($userAgent, self::$_uaSignatures);
  113. }
  114. /**
  115. * Gives the current browser type
  116. *
  117. * @return string
  118. */
  119. public function getType()
  120. {
  121. return 'bot';
  122. }
  123. }