Provides various official and user-released code examples and code reference. You are welcome to exchange and learn for a while, finally understand the concept of TP behavior, and write a simple anti-Refresh counter, if you have any shortcomings, please let us know.
First, configure the tags. php file in the Conf folder of the target configuration item.
return array(
'view_filter' => array(
'Counter'
),
);
Under the Behavior directory of the project
Create CounterBehavior. class. php file
/**
* Counter behavior:
*
*/
Class CounterBehavior extends Behavior
{
// The behavior Parameter definition (default value) can be overwritten in the project configuration
Protected $ options = array (
'Counter _ on' => true // whether to enable the Counter
);
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 );
}
}
}
Then add {__counter __} to the template file that needs to use the Counter.
Counter.zip (148.97 KB download: 154 times)
AD: truly free, domain name + VM + enterprise mailbox = 0 RMB