TP行为简单例子--防刷新计数器

原创
2016-06-07 11:44:55 1238浏览

花了一段时间,总算理解了TP行为的概念,写了一个简单的防刷新的计数器,有什么不足之处,欢迎大家指正。
首先配置项目的Conf文件夹下的tags.php文件 return array(
'view_filter' => array(
'Counter'
),

);
在项目的Behavior目录下
建立CounterBehavior.class.php文件 /**
* 计数器行为:
*
*/
class CounterBehavior extends Behavior
{
// 行为参数定义(默认值) 可在项目配置中覆盖
protected $options = array(
'Counter_ON' => true// 是否开启计数器
);
public function run(&$content)
{
if(C('Counter_ON'))
{
$file=$_SERVER['DOCUMENT_ROOT'].dirname().'/counter.txt';
$hits=intval(file_get_contents($file));
$nums=str_split($hits);
$pic="";
$imgpath=dirname().'/Public/images/counter/';
foreach ($nums as $num) {
$pic.="";
}
$content = str_replace('{__Counter__}',$pic,$content);
$hits++;
if(!session('?counter'))
{
$handle=fopen($file, "w");
flock($handle, LOCK_EX+LOCK_NB);
fwrite($handle, $hits);
flock($handle, LOCK_UN+LOCK_NB);
fclose($handle);
session('counter',time());
}
}
else
{
$content = str_replace('{__Counter__}','',$content);
}
}
}
然后在需要使用计数器的模板文件里加上{__Counter__}即可

附件 counter.zip ( 148.97 KB 下载:154 次 )

AD:真正免费,域名+虚机+企业邮箱=0元

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。