<?
//====================
//文件:cont.php
//功能:计数|记录
//作者:[email protected]
//修改:2002-1-23
//====================
$cont="cont.txt";
$logs="logs.txt";
$ip=$REMOTE_ADDR;
$Today=date("Y年m月d日 H:i:s"); $fp=fopen($cont,"r");
$num_cont=fgets($fp,5);
fclose($fp); $fp=fopen($cont,"w");
if($num_cont=="")$num_cont=0;
$num_cont+=1;
fputs($fp,$num_cont);
echo $num_cont;
//exec( "echo $num_cont > $cont");
fclose($fp); $fp=fopen($logs,"a");
$log_text=$num_cont." > ".$ip." 在 ".$Today."访问\n";
fputs($fp,$log_text);
fclose($fp);
?>

解决方案 »

  1.   

    <?
    //====================
    //文件:cont.php
    //功能:计数|记录
    //作者:[email protected]
    //修改:2002-1-23
    //====================
    $cont="cont.txt";
    $logs="logs.txt";
    $ip=$REMOTE_ADDR;
    $Today=date("Y年m月d日 H:i:s"); $fp=fopen($cont,"r");
    $num_cont=fgets($fp,5);
    fclose($fp); $fp=fopen($cont,"w");
    if($num_cont=="")$num_cont=0;
    $num_cont+=1;
    fputs($fp,$num_cont);
    echo $num_cont;
    //exec( "echo $num_cont > $cont");
    fclose($fp); $fp=fopen($logs,"a");
    $log_text=$num_cont." > ".$ip." 在 ".$Today."访问\n";
    fputs($fp,$log_text);
    fclose($fp);
    ?>
      

  2.   

    <?
    //====================
    //文件:cont.php
    //功能:计数|记录
    //作者:[email protected]
    //修改:2002-1-23
    //====================
    $cont="cont.txt";
    $logs="logs.txt";
    $ip=$REMOTE_ADDR;
    $Today=date("Y年m月d日 H:i:s"); $fp=fopen($cont,"r");
    $num_cont=fgets($fp,5);
    fclose($fp); $fp=fopen($cont,"w");
    if($num_cont=="")$num_cont=0;
    $num_cont+=1;
    fputs($fp,$num_cont);
    echo $num_cont;
    //exec( "echo $num_cont > $cont");
    fclose($fp); $fp=fopen($logs,"a");
    $log_text=$num_cont." > ".$ip." 在 ".$Today."访问\n";
    fputs($fp,$log_text);
    fclose($fp);
    ?>
      

  3.   

    <?/////////////////////////////////////////////////////
    /////////  ----- [email protected]  ///////////
    // 支持内部/外部ip统计,日访问量统计             //
    ///////////////////////////////////////////////////$yourip=$REMOTE_ADDR."&nbsp;".$HTTP_USER_AGENT;
    $yourip_min=$REMOTE_ADDR;function IPisOutside($ip)
    {
    if (substr($ip,0,3)=="192" ||
    substr($ip,0,3)=="172" ||
    substr($ip,0,3)=="127")
    {
    return false;
    }
    return true;
    }function counter()
    {
    global $yourip;
    global $yourip_min;

    $basedir="./counter/";     // should be terminated with "/"

    $counterFile=$basedir."_counter_.txt";


    if (!file_exists($counterFile))
    {
    //die("计数器记录文件丢失!");
    $fp=fopen($counterFile,"w");
    fputs($fp,"");
    fclose($fp);
    }

    $fd=@fopen($counterFile,"r");
    $str=@fread($fd,255);
    $str_array=@explode("||",$str);
    while(list($key,$value)=each($str_array))
    {
    $count[$key]=$value;
    }
    @fclose($fd);
    $num=$count[0]*1;
    $ip=$count[1];

    /////////
    $total_count_in_out_tmp=@explode(",",$count[2]);
    $total_count_in=$total_count_in_out_tmp[0]*1;
    $total_count_out=$total_count_in_out_tmp[1]*1;
    /////////
    $total_days=$count[7]*1;

    $average_day_in=$count[4]*1;
    $p1_array=@explode(",",$count[3]);
    $in_date_count=$p1_array[0]*1;
    $in_date=$p1_array[1];

    $average_day_out=$count[6];
    $p2_array=@explode(",",$count[5]);
    $out_date_count=$p2_array[0]*1;
    $out_date=$p2_array[1];
    if (date("Y-m-d")<>"$in_date")
    {
    $total_days++;

    $average_day_in= round( ($in_date_count + $average_day_in*($total_days-1))/$total_days);
    $in_date=date("Y-m-d");

    $average_day_out= round( ($out_date_count + $average_day_out*($total_days-1))/$total_days);
    $out_date=date("Y-m-d");
    $in_date_count=0;
    $out_date_count=0;
    }
    if($ip!=$yourip) //若想不以IP统计,请注释此行
    {
    $num++;

    if (IPisOutside($yourip)==false)
    {
    $total_count_in++;
    $in_date_count++;
    }
    else
    {
    $total_count_out++;
    $out_date_count++;
    }
    }
    ///////////

    $fd=@fopen($counterFile,"w");
    fputs($fd,"$num||$yourip||$total_count_in,$total_count_out||$in_date_count,$in_date||$average_day_in||$out_date_count,$out_date||$average_day_out||$total_days");
    fclose($fd);

    $average_day_total=$average_day_in+$average_day_out;
    $counter_info="<IP访客计数器>\n总访问量 $num"."\n内部 $total_count_in"."\n外部 $total_count_out"."\n----------\n平均日访问量 $average_day_total"."\n内部 $average_day_in"."\n外部 $average_day_out"."\n----------\n你的IP是 $yourip_min";
    $count_len=strlen($num);
    for($i=0;$i<$count_len;$i++)
    {
    $ok[$i]=substr($num,$i,1).".gif";
    echo "<img src='$basedir$ok[$i]' width=\"7\" height=\"10\" title=\"$counter_info\">";
    /////////////////////

    } counter();
    ?>
      

  4.   

    上面的是我做的图形计数器,需要在同一目录下放 
    0.gif、1.gif 。。9.gif
      

  5.   

    不图形的也可以啊,只须把最后输出那几行改成这样:for($i=0;$i<$count_len;$i++)
    {
          echo substr($num,$i,1);      /////////////////////
    }
      

  6.   

    <?php
    //还有一些辅助文件,请mailto:[email protected]索取打包$datafile="poppadata.dat";                //计数器的数据库文件
    $textcountlength = 5;                     //计数器的统计位数   
     
    $font = "Arial, Helvetica, sans-serif";   //数字的字体
    $fontsize = "2";                          //数字的大小
    $fontcolour = "#999999";                  //数字的颜色     
    $firsttry  = 1;                           //计数器的初始值
    //函数定义部分//
    function convert_ip($ip) 
    {
    $ip_detail=explode(".",$ip);
    if (file_exists("datafile/$ip_detail[0].txt")) $ip_data=file("datafile/$ip_detail[0].txt");
    else $ip_data=file("datafile/0.txt");
    for ($i=0; $i<=3; $i++) {
    $ip_detail[$i]     = sprintf("%03d", $ip_detail[$i]);
    }
    $ip=join(".",$ip_detail);
    $count=count($ip_data);
    $count=$count-1;
    for ($i=0; $i<=$count; $i++) {
    $ip_data_detail=explode("|",$ip_data[$i]);
    if ($ip>=$ip_data_detail[0] && $ip<=$ip_data_detail[1]) return $ip_data_detail[2].$ip_data_detail[3];
    }
    if ($ip_detail[0]=="127") return "本地机器";
    return "未知地区";
    }
    function readcountdata() 

     global $datafile;
     $file = fopen($datafile,"r+"); 
     $poppacount = fgets($file,50);
     fclose ($file);
     return $poppacount;
    }
    function assay($ip)      
    {
    global $ipfilename;
    $assaydata = file("visdata/$ipfilename"); 
            for($i = 0; $i < count($assaydata); $i++) 
               { 
                 $assayforward = explode("||", $assaydata[$i]); 
      
                 if ($assayforward[0] == $ip) 
                    { 
                     $iphave=1;
                     break; 
                    } 
                }
    return $iphave;
    }
    //主程序部分//
    $ipfilenametemp=date(Ymd);
    $ipfilename="$ipfilenametemp.dat";
    $ip=getenv("REMOTE_ADDR");
    $comefrom=convert_ip($ip);
    $visterdata=date("h:i:s");
    $ipfulldata="$ip||$comefrom||$visterdata\n";
    if (!file_exists($datafile)) 
               {
                $file = fopen($datafile,"w+");
                fwrite ($file,$firsttry);
                fclose ($file);
                $poppacount=$firsttry;
                $ipfile=fopen("visdata/$ipfilename","w+");
                fwrite ($ipfile,$ipfulldata);
                fclose ($ipfile);
               }
    else
    {
        if (!file_exists("visdata/$ipfilename"))
        { 
            $ipfile=fopen("visdata/$ipfilename","w+");
            fwrite ($ipfile,$ipfulldata);
            fclose ($ipfile);
            $poppacount=readcountdata();
            $poppacount+=1;
            $file = fopen($datafile,"w+"); 
            fwrite ($file,$poppacount);
            fclose ($file);
        }
        else
        {
         if(assay($ip)==1)
           {
            $poppacount=readcountdata();
              }
            else
              {
               $poppacount=readcountdata();
               $poppacount+=1;
               $file = fopen($datafile,"w+"); 
                    fwrite ($file,$poppacount);
                    fclose ($file);
                    $ipfile=fopen("visdata/$ipfilename","a+");
                    fwrite ($ipfile,$ipfulldata);
                    fclose ($ipfile);
              }
        }
    }
    $countover="<font face=$font size=$fontsize color=$fontcolour>".sprintf("%0"."$textcountlength"."d",$poppacount)."</font>";
    ?>
    document.write("<?echo $countover;?>");