> php教程 > php手册 > TP行为简单例子--防刷新计数器

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

WBOY
풀어 주다: 2016-06-07 11:44:55
원래의
1680명이 탐색했습니다.

花了一段时间,总算理解了TP行为的概念,写了一个简单的防刷新的计数器,有什么不足之处,欢迎大家指正。
首先配置项目的Conf文件夹下的tags.php文件<?php <br /> return array(<br>     'view_filter'   =>  array(<br>         'Counter'<br>     ),<br>    <br> );在项目的Behavior目录下
建立CounterBehavior.class.php文件<?php <br /> /**<br>  * 计数器行为:<br>  * <br>  */<br> class CounterBehavior extends Behavior <br> {<br>     // 行为参数定义(默认值) 可在项目配置中覆盖<br>     protected $options   =  array(<br>         'Counter_ON'       => true// 是否开启计数器<br>         );<br>     public function run(&$content)<br>     {<br>         if(C('Counter_ON'))<br>         {<br>             $file=$_SERVER['DOCUMENT_ROOT'].dirname().'/counter.txt';<br>             $hits=intval(file_get_contents($file));<br>             $nums=str_split($hits);<br>             $pic="";<br>             $imgpath=dirname().'/Public/images/counter/';<br>             foreach ($nums as $num) {<br>                 $pic.="<img alt="TP行为简单例子--防刷新计数器" >";<br>             }<br>             $content = str_replace('{__Counter__}',$pic,$content);<br>             $hits++;<br>             if(!session('?counter'))<br>             {<br>                 $handle=fopen($file, "w");<br>                 flock($handle, LOCK_EX+LOCK_NB);<br>                 fwrite($handle, $hits);<br>                 flock($handle, LOCK_UN+LOCK_NB);<br>                 fclose($handle);<br>                 session('counter',time());<br>             }<br>         }<br>         else<br>         {<br>             $content = str_replace('{__Counter__}','',$content);<br>         }<br>     }<br> }然后在需要使用计数器的模板文件里加上{__Counter__}即可

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

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿