chodzi o skrypt do zliczania odwiedzin robotów google, msn, yahoo itp.
jakoś mi nie działa, czy ktoś może powiedzieć dlaczego.. polecenia które są uwzględnione niestety do mnie nie docierają, oto kod z góry dziękuję i pozdrawiam :
<?php
$flExists = FALSE;
$RobotDB = "robot.db";
$RobotArray = array("googlebot", "msnbot", "yahoo");
$CurrentPage = md5($_SERVER['REQUEST_URI']); $CurrentBot = strtolower($_SERVER['HTTP_USER_AGENT']);
{
foreach ($RobotArray as $key => $value)
{
$DBHandle = fopen($RobotDB, "r+"); {
$Line = fgets($DBHandle, 61
); {
{
$flExists = TRUE;
$CurrentPos = ftell($DBHandle); fseek($DBHandle, 0
, SEEK_END
); }
$Line = fgets($DBHandle, 61
); }
if (!$flExists)
{
fseek($DBHandle, 0
, SEEK_END
); $PageInfo = array_merge($CurrentPage, array('googlebot' => 0, 'msnbot' => 0, 'yahoo' => 0
)); }
else { fseek($DBHandle, ($CurrentPos - 60
), SEEK_SET
); }
$PageInfo[ $RobotArray[$key] ] = $PageInfo[ $RobotArray[$key] ] + 1;
// print_r($PageInfo);
fwrite($DBHandle, base64_encode(pack("A*VVV", $CurrentPage, $PageInfo['googlebot'], $PageInfo['msnbot'], $PageInfo['yahoo']))); flock($DBHandle, LOCK_UN
); }
}
}
else
{
{
$DBHandle = fopen($RobotDB, "r"); {
$Line = fgets($DBHandle, 61
); {
{
$flExists = TRUE;
$CurrentPos = ftell($DBHandle); fseek($DBHandle, 0
, SEEK_END
); }
$Line = fgets($DBHandle, 61
); }
}
}
if (!$flExists) { $PageInfo = array('googlebot' => 0, 'msnbot' => 0, 'yahoo' => 0
); } }
?>
powyżej źródło pliku robots_counter.php, niżej wywołanie:
<?php
include("robots_counter.php");
?>
<?php echo $PageInfo['netsprint']; ?> <?php echo $PageInfo['onet']; ?> <?php echo $PageInfo['szukacz']; ?>