php+dbfile开发简单的访客来源统计

<?php
$refererFile='refererdata.php';
if(file_exists($refererFile)){
    require_once($refererFile);
}else{
    $Referer=array();
}

$path=pathinfo($SCRIPT_NAME);
if(isset($_SERVER['HTTP_REFERER']) && !strstr($_SERVER['HTTP_REFERER'],'http://'.$HTTP_HOST.$path['dirname'])){
    $url=urldecode($_SERVER['HTTP_REFERER']);
    if(isset($Referer[$url])){
        $Referer[$url]=$Referer[$url]+1;
    }else{
        $Referer[$url]=1;
    }
    function getRefererStr($i,$k){
        global $s;
        $s[]="/t/"".$k."/"=>$i";
    }
    array_walk($Referer,'getRefererStr');
    $s="<?php/n/$Referer=array(/n".join($s,",/n")."/n);/n?>";
    if(is_writable($refererFile) || !file_exists($refererFile)){
        if(!$handle=fopen($refererFile,'w')){
            return false;
        }
        if(!fwrite($handle,$s)){
            return false;
        }
        fclose($handle);
    }else{
        return false;
    }
    return true;
}
?>


在要统计的页面插入“<?php require_once('referer.php'); ?>”,使用时主文件会自动生成一个数据存储文件 refererdata.php

referstat.php,来源信息察看文件。
<?php
if(file_exists('refererdata.php')){
    require_once('refererdata.php');
    natsort($Referer);
    end($Referer);
    for($i=0;$i<count($Referer);$i++){
        $R=current($Referer);
        $s[]='&#187; <a href="'.key($Referer).'" target="_blank">'.preg_replace("/^https?://///i",'',key($Referer)).'</a> ('.$R.')';
        prev($Referer);
    }
    echo '<b>访客来源:</b><br/>'.join($s,'<br/>');
}else{
    header('Location:.',true);
}
?>
 

你可能感兴趣的:(PHP,server,header,File,url,Path)