Подсчет и стата посещений ботов Yahoo|MSN|Google 1.Скрипт bot_count.php (инклудим в свою страницу) PHP: <?php if(eregi("googlebot|msn|yahoo",$HTTP_USER_AGENT)) { //создаем файл со статой if(!is_file('bot_log') || filesize('bot_log')==0) { $fp = @fopen("bot_log","w"); @flock ($fp, LOCK_EX); @fputs($fp,"0|0|0\n0|0|0\n"); @flock ($fp, LOCK_UN); @fclose($fp); } //считываем файл со статой $arr_bot=file('bot_log'); $bot_count=$arr_bot[0]; $time_bot_count=$arr_bot[1]; $bot_count=explode('|',$bot_count); $GOOGLE_COUNT=(int)$bot_count[0]; $YAHOO_COUNT=(int)$bot_count[1]; $MSN_COUNT=(int)$bot_count[2]; $time_bot_count=explode('|',$time_bot_count); $GOOGLE_TIME=$time_bot_count[0]; $YAHOO_TIME=$time_bot_count[1]; $MSN_TIME=$time_bot_count[2]; //пишем гуглбота в стату if(eregi("googlebot",$HTTP_USER_AGENT)) { $str_to_log = (++$GOOGLE_COUNT).'|'.$YAHOO_COUNT.'|'.$MSN_COUNT."\n"; $str_to_log .= time().':::'.$PHP_SELF.'?'.$QUERY_STRING.':::'.$HTTP_USER_AGENT.':::'.$REMOTE_ADDR.'|'.$YAHOO_TIME.'|'.$MSN_TIME; $fp = @fopen("bot_log","w"); @flock ($fp, LOCK_EX); @fputs($fp,$str_to_log); @flock ($fp, LOCK_UN); @fclose($fp); } //пишем яху в стату if(eregi("yahoo",$HTTP_USER_AGENT)) { $str_to_log = $GOOGLE_COUNT.'|'.(++$YAHOO_COUNT).'|'.$MSN_COUNT."\n"; $str_to_log .= $GOOGLE_TIME.'|'.time().':::'.$PHP_SELF.'?'.$QUERY_STRING.':::'.$HTTP_USER_AGENT.':::'.$REMOTE_ADDR.'|'.$MSN_TIME; $fp = @fopen("bot_log","w"); @flock ($fp, LOCK_EX); @fputs($fp,$str_to_log); @flock ($fp, LOCK_UN); @fclose($fp); } //пишем мсн в стату if(eregi("msn",$HTTP_USER_AGENT)) { $str_to_log = $GOOGLE_COUNT.'|'.$YAHOO_COUNT.'|'.(++$MSN_COUNT)."\n"; $str_to_log .= $GOOGLE_TIME.'|'.$YAHOO_TIME.'|'.time().':::'.$PHP_SELF.'?'.$QUERY_STRING.':::'.$HTTP_USER_AGENT.':::'.$REMOTE_ADDR; $fp = @fopen("bot_log","w"); @flock ($fp, LOCK_EX); @fputs($fp,$str_to_log); @flock ($fp, LOCK_UN); @fclose($fp); } } 2. Создаем файл stats.php PHP: <html> <title>Bots stat</title> <body> <p> <?php $data=file('bot_log'); if (!empty($data[0])) { $count=$data[0]; list($GOOGLE_COUNT,$YAHOO_COUNT,$MSN_COUNT)=explode('|',$count); $bots=$data[1]; list($GOOGLE_BOT,$YAHOO_BOT,$MSN_BOT)=explode('|',$bots); print '<b>Google bot</b> был здесь <b><font color="red">'.$GOOGLE_COUNT.'</font></b> раз<br/>'; list($g_time,$g_path,$g_agent,$g_ip)=explode(':::',$GOOGLE_BOT); print '<b>'.date('d.m.Y H:i:s',$g_time).'</b> '.$g_path.' <i>'.$g_agent.' ('.$g_ip.')</i>'; print '<hr/>'; list($y_time,$y_path,$y_agent,$y_ip)=explode(':::',$YAHOO_BOT); print '<b>Yahoo bot</b> был здесь <b><font color="red">'.$YAHOO_COUNT.'</font></b> раз<br/>'; print '<b>'.date('d.m.Y H:i:s',$y_time).'</b> '.$y_path.' <i>'.$y_agent.' ('.$y_ip.')</i>'; print '<hr/>'; list($m_time,$m_path,$m_agent,$m_ip)=explode(':::',$MSN_BOT); print '<b>MSN bot</b> был здесь <b><font color="red">'.$MSN_COUNT.'</font></b> раз<br/>'; print '<b>'.date('d.m.Y H:i:s',$m_time).'</b> '.$m_path.' <i>'.$m_agent.' ('.$m_ip.')</i>'; } ?> </p> </body> </html> 3.Создаем файл bot_log и открываем на запись --- Все) Теперь у вас есть подробная и простая стата по посещениям ботов основных поисковиков (по коду Яшу и иже с ними легко добавить самому)
Спасибо)) правь ошибки (3.Создаем файл bot_log b открываем на запись) - вместо "b" "и". А разве bot_log не лучше с расширением .txt?
Как я понял по коду тут токо 3 бота определяет ? Yahoo , Google , MSN ? Еще б не плохо было добавить Yandex , mail.ru , Rambler !
>А разве bot_log не лучше с расширением .txt? какая разница?) все равно ты его не вручную читаешь, а через stats.php >Как я понял по коду тут токо 3 бота определяет ? Yahoo , Google , MSN ? Еще б не плохо было добавить Yandex , mail.ru , Rambler ! не работал по Раше, добавь, это несложно)