欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2024-02-20 15:00:22
...
花了一段时间,总算理解了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.="TP行为简单例子--防刷新计数器";
}
$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__}即可

TP行为简单例子--防刷新计数器 counter.zip ( 148.97 KB 下载:154 次 )

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