0

在我的网页上,我注册了访问者的活动以进行分析。

但是,结果会受到机器人访问的影响。

我想知道在将数据保存到数据库之前检查 user_agent 是否是一种聪明的方法(请参阅底部的功能)。我担心我的网络上的繁重负载。有很多机器人,我不知道在每次访问中检查 user_agent 与 30 个机器人列表是否有效。

$bots = array( 'googlebot', 'msnbot', 'baidu', ... up to 30 );
$isRobot = false;
$ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );

foreach ( $bots as $bot ) {
        if ( strpos( $ua, $bot ) !== false )
            $isRobot = true;
        }

        if ( !$isRobot ) {
            // insert in the db
        }
    }

另一种方法是允许插入数据库并在之后删除它们。

4

1 回答 1

0

使用in_array

$bots = array( 'googlebot', 'msnbot', 'baidu', ... up to 30 );
$isRobot = false;
$ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );

if(in_array($ua, $bots)) {
    $isRobot = true;
}
if ( !$isRobot ) {
    // insert in the db
}
于 2012-09-04T17:27:42.203 回答