一个简单的php计数器

代码如下:
<?php 
$ip = getenv("REMOTE_ADDR");    //IP 

$count_file = "count.txt";        //文件 
$max = 6;                                            //位数 
$count = 60;                                        //次数 

function formats(&$count)            //方便存储,先格式化成20位字符串 

    $count = sprintf("%d",$count); 
    $j = 20-strlen($count); 
    for($i=0; $i<$j; $i++) 
    { 
        $count = "0".$count; 
    } 


function ipdata(&$fp, &$ip)        //ip是否已记录 

    $k = 1;                                            //为1则还没有,为0则已访问 
    while(!feof($fp)) 
    { 
        if($ip == Chop(fgets($fp,255))) 
        { 
            $k = 0; 
            break; 
        } 
    } 
    return $k; 


function time_yes(&$count, &$ip)        //记录的时间是今天 

    global $count_file; 
    $count += 1;    
    formats($count); 
    $fp = fopen($count_file, "a+"); 
    fputs($fp, "\r\n".$ip); 
    fclose($fp); 
    $fp = fopen($count_file, "r+"); 
    fputs($fp, $count); 
    fclose($fp); 


function time_no(&$count, &$ip)        //记录的时间不是今天 

    global $count_file; 
    $count += 1; 
    formats($count); 
    $fp = fopen($count_file, "w"); 
    fputs($fp, $count); 
    fputs($fp, "\r\n".date(Ymd)); 
    fputs($fp, "\r\n".$ip); 
    fclose($fp); 


if(!file_exists($count_file)) 

    time_no($count, $ip); 

else 

    $fp = fopen($count_file, "r"); 
    $count = fgets($fp, 255); 
    $to_time = fgets($fp, 255); 
    $k = ipdata($fp, $ip); 
    fclose($fp); 
    if(Chop($to_time) != date("Ymd")) 
        time_no($count, $ip); 
    elseif($k == 1) 
        time_yes($count, $ip); 



$fp = fopen($count_file, "r"); 
$counts = fgets($fp, 255); 
fclose($fp); 

for($i=1; $i<=$max; $i++) 

    $num = substr($counts, $i+(19-$max), 1); 
    $image = "<img src=\"images/$num.gif\">"; 
    $show = $show.$image; 


print $show; 

?> 


文章来自: 本站原创
引用通告地址: http://www.wantfly.cn/trackback.asp?tbID=100
Tags:
评论: 0 | 引用: 54 | 查看次数: 2350
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码:
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭