0

私のウェブページでは、訪問者の活動を分析のために登録しています。

ただし、結果はボットの訪問の影響を受けます。

DB にデータを保存する前に user_agent をチェックすることが賢明なアプローチであるかどうかを知りたいです (下部の関数を参照)。Web の負荷が高すぎて心配です。多くのボットがあり、各訪問で 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
        }
    }

代わりに、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 に答える