2012-09-04 3 views
0

내 웹 페이지에서 방문자 활동 분석을 등록합니다.DB 봇/스파이더/크롤러 활동에 삽입하지 않음

그러나 결과는 봇 방문의 영향을받습니다.

DB에 데이터를 저장하기 전에 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 
     } 
    } 

대신 DB에 삽입하여 삭제할 수 있습니다.

답변

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 
} 
관련 문제