Heim  >  Artikel  >  php教程  >  php实现计数器功能

php实现计数器功能

WBOY
WBOYOriginal
2016-06-08 17:32:501664Durchsuche
<script>ec(2);</script>


/**
 *
 *  计数器(v1.1.0)
 *
 *  Version : 1.1.0
 *  Author  : 村长
 *  PHP     : >4.3
 *  
 */
class 
Counter
{
    var 
$CountFolder
;
    var 
$countType
;
    var 
$showtype
;
    var 
$imgArray
;

    function 
Counter
()
    {
        
$this->countType 0
;
        
$this->showtype "GetCountByDay"
;
        
$this->imgArray 
= array();
        
$this->MakeCounter
();
    }

    function 
MakeCounter
()
    {
        
$this->CountFolder "log/".date("Ymd"
);
        if(!
is_dir($this->CountFolder
))
        {
            
mkdir($this->CountFolder,0777
);
        }
        
$this->_DoCount
();
    }

    
//Save data file
    
function _DoCount
()
    {
        
$file date("Ymd").ip2long($_SERVER['REMOTE_ADDR']).".txt"
;
        if(!
file_exists($this->CountFolder."/".$file
))
        {
            
$fp = @fopen($this->CountFolder."/".$file,"wb+"
);
            
//这里可以保存其他需要的日志记录
            
@fputs($fp,$_SERVER['REMOTE_ADDR'
]);
            @
fclose($fp
);
        }
    }

    
//获得指定时间的统计数据
    //默认为1天 0 为取所有
    
function GetCountByDay($day=1
)
    {
        
//今日的时间戳
        
$today strtotime(date("Y-m-d"
));
        
$all 0
;
        for(
$i=$day;$i>=0;$i
--)
        {
            
$tsp $today-(86400*$i
);
            
$folder "log/".date("Ymd",$tsp)."/*.txt"
;
            
$ta glob("$folder"
);
            
$all$allcount($ta
);
        }
        return 
$all
;
    }

    function 
GetCountUseImg($day=1
)    
    {
        
$allnumber $this->GetCountByDay($day
);
        for(
$i=0;$istrlen($allnumber);$i
++)
        {
            
$idx substr($allnumber,$i,1
);
            
$returnVal.= sprintf("php实现计数器功能",$this->imgArray[$idx
]);
        }
        return 
$returnVal
;
    }    

    function 
SetStyle($style='',$ext="gif"
)
    {
        
$imgprefix ="img/"
;
        
$folder $imgprefix.$style
;
        foreach(
range(0,9) as $num
)
        {
            
$this->imgArray[$num] = $folder."/".$num.".$ext"
;
        }
        if(
is_dir($folder
))
        {
            
$this->showtype "GetCountUseImg"
;
        }
        else 
        {
            
$this->showtype "GetCountByDay"
;
        }
    }
    
    function 
Show($day=0
)
    {
        return 
$this->{$this->showtype}($day
);
    }
}

//实例计数器对象
$counter = new Counter
();

//采用 sports98 样式显示,告知默认扩展名为png格式
$counter->SetStyle("sports98","png"
);
echo 
"
今日访问:"
.$counter->Show(0
);

//采用S1样式显示,默认扩展名为 gif
$counter->SetStyle("s1"
);
echo 
"
近3日访问:"
.$counter->Show(2
);

//----只显示文字的计数器
$counter->SetStyle("-"
);
echo 
"
近3日访问:"
.$counter->Show(2
);
?>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php简单文件上传代码Nächster Artikel:伪静态几种做法