TP行为简单例子--防刷新计数器
程序员文章站
2024-02-20 15:00:22
...
花了一段时间,总算理解了TP行为的概念,写了一个简单的防刷新的计数器,有什么不足之处,欢迎大家指正。
首先配置项目的Conf文件夹下的tags.php文件
建立CounterBehavior.class.php文件
首先配置项目的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元
推荐阅读