アクセスカウンタでbotを除きたいので、いろいろ試行錯誤してみた。
上記リンク先のようにすればいいけど、今はstr_contains()を使ったほうがいいということなので、少し変えてみた。
$_SERVER[‘HTTP_USER_AGENT’];に変わって、gethostbyaddr($_SERVER[‘REMOTE_ADDR’]);でIPアドレスをホスト名にして、ボットかどうか判別。ボットだと思われるものはarray関数に追加する形にしました。ボットならtrue,ボットではないならfalseが返る。
function isBot(){
$ua = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$bot_arr = array(
"applebot"
,"ahrefs.com"
,"googlebot"
,"msnbot"
,"rate-limited-proxy"
);
foreach ($bot_arr as $bot_value) {
if (str_contains($ua, $bot_value)) {
return true;
}
}
return false;
}
とりあえず、これで運用してみます。