Skip to content

Commit ee0b50a

Browse files
committed
Crawler Detector
1 parent 160c051 commit ee0b50a

File tree

3 files changed

+59
-1
lines changed

3 files changed

+59
-1
lines changed

berry/mysql.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@
55
require_once(__DIR__ . "/mysql/MySQLCommandParameter.php");
66
require_once(__DIR__ . "/mysql/MySQLCommandParameters.php");
77
require_once(__DIR__ . "/mysql/MySQLDataReader.php");
8-
98
?>

berry/utils.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
3+
require_once(__DIR__ . "/utils/CrawlerDetector.php");
4+
5+
?>

berry/utils/CrawlerDetector.php

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
3+
/*
4+
MIT License
5+
6+
Copyright (c) 2022 Nikos Siatras
7+
8+
Permission is hereby granted, free of charge, to any person obtaining a copy
9+
of this software and associated documentation files (the "Software"), to deal
10+
in the Software without restriction, including without limitation the rights
11+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
copies of the Software, and to permit persons to whom the Software is
13+
furnished to do so, subject to the following conditions:
14+
15+
The above copyright notice and this permission notice shall be included in all
16+
copies or substantial portions of the Software.
17+
18+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24+
SOFTWARE.
25+
*/
26+
27+
class CrawlerDetector
28+
{
29+
30+
public function __construct()
31+
{
32+
33+
}
34+
35+
/**
36+
* If the current client is a crawler then this method returns the crawler's name.
37+
* Otherwise it returns (String empty) ""
38+
*
39+
* @return string returns the crawlers name or (String empty) ""
40+
*/
41+
public function getCrawlerName()
42+
{
43+
$USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
44+
45+
if (preg_match('/bot|wget|crawl|slurp|spider|mediapartners|facebook/i', $USER_AGENT))
46+
{
47+
return $USER_AGENT;
48+
}
49+
50+
return "";
51+
}
52+
53+
}
54+
?>

0 commit comments

Comments
 (0)