1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace WhichBrowser\Analyser\Header\Useragent;
- use WhichBrowser\Constants;
- use WhichBrowser\Data;
- trait Bot
- {
- private function &detectBot($ua)
- {
- /* Detect bots based on url in the UA string */
- if (preg_match('/\+https?:\/\//iu', $ua)) {
- $this->data->browser->reset();
- $this->data->os->reset();
- $this->data->engine->reset();
- $this->data->device->reset();
- $this->data->device->type = Constants\DeviceType::BOT;
- }
- /* Detect bots based on common markers */
- if (preg_match('/(?:Bot|Robot|Spider|Crawler)([\/\);]|$)/iu', $ua) && !preg_match('/CUBOT/iu', $ua)) {
- $this->data->browser->reset();
- $this->data->os->reset();
- $this->data->engine->reset();
- $this->data->device->reset();
- $this->data->device->type = Constants\DeviceType::BOT;
- }
- /* Detect based on a predefined list or markers */
- if ($bot = Data\Applications::identifyBot($ua)) {
- $this->data->browser = $bot;
- $this->data->os->reset();
- $this->data->engine->reset();
- $this->data->device->reset();
- $this->data->device->type = Constants\DeviceType::BOT;
- }
- return $this;
- }
- }
|