phpでロボットかどうか判定する
PHPでロボット(クローラーやスパイダー)かどうかを判定するには、HTTPヘッダーからUser-Agentを取得することが一般的です。
以下は、PHPでUser-Agentを取得するコード例です。
php$user_agent = $_SERVER['HTTP_USER_AGENT'];
次に、取得したUser-Agentがロボットであるかどうかを判定するために、正規表現を用いることができます。一般的に、クローラーやスパイダーのUser-Agentには、”bot”や”crawler”などのキーワードが含まれることが多いため、これらのキーワードを含む場合はロボットと判定することができます。
以下は、User-Agentがロボットであるかどうかを判定するコード例です。
php$is_robot = false;
if (preg_match('/bot|crawler/i', $user_agent)) {
$is_robot = true;
}
if ($is_robot) {
// ロボットである場合の処理
} else {
// ロボットでない場合の処理
}
上記のコードでは、preg_match関数を使って、User-Agentが”bot”や”crawler”という文字列にマッチするかどうかを判定しています。マッチする場合は$is_robot変数にtrueがセットされ、ロボットであると判定されます。マッチしない場合は$is_robot変数にfalseがセットされ、ロボットでないと判定されます。
このようにして、PHPでロボットかどうかを判定するスクリプトを作成することができます。