1.添加统计代码

首先在前台访问的Index控制器下加入以下代码,此段代码在高并发下也能正常使用

//$file = dirname(str_replace('\\','/',__FILE__)).'/tongji.db';表示为在当前文件夹下的tongji.db文件,要自己新建

//__FILE__为当前文件位于磁盘的绝对路径.如:G:/PHP/htdocs/www/Application/Home/Controller/tongji.db
//将访问次数写入tongji.db文件下
$file = dirname(str_replace('\\','/',__FILE__)).'/tongji.db';
//$data = unserialize(file_get_contents($file));
$fp=fopen($file,'r+');
$content='';

if (flock($fp,LOCK_EX)){
while (($buffer=fgets($fp,1024))!=false){
$content=$content.$buffer;
}
//unserialize(),此函数是将数据流反序列化成数组
$data=unserialize($content);

//设置记录键值
$total = 'total';
$month = date('Ym');
$today = date('Ymd');
$yesterday = date('Ymd',strtotime("-1 day"));
$tongji = array();
// 总访问增加
$tongji[$total] = $data[$total] + 1;
// 本月访问量增加
$tongji[$month] = $data[$month] + 1;
// 今日访问增加
$tongji[$today] = $data[$today] + 1;
//保持昨天访问
$tongji[$yesterday] = $data[$yesterday];

//保存统计数据,写入到tongji.db下
ftruncate($fp,0); // 将文件截断到给定的长度
rewind($fp); // 倒回文件指针的位置
//serialize(),此函数是将数组序列化成数据流
fwrite($fp, serialize($tongji));
flock($fp,LOCK_UN);
fclose($fp);

//输出数据,然后写入到system.php的配置文件中
$total = $tongji[$total];
$month = $tongji[$month];
$today = $tongji[$today];
$yesterday = $tongji[$yesterday]?$tongji[$yesterday]:0;

 //写入conf下的system.php中可以用C()读取方便分配到模板使用
$path=$_SERVER['DOCUMENT_ROOT'].__ROOT__.'/Application/Common/Conf/system.php';

$config['TOTAL']=array('访问总数'=>$total,'本月'=>$month,'昨日'=>$yesterday,'今日'=>$today);
$data="<?php\r\n return  " . var_export($config,true)."; \r\n ?>";
file_put_contents($path, $data);


2.创建可写入文件

在Admin和Home模块公用的Common\Conf\下 新建一个system.php文件,并在config.php中加入以下代码

3.写入配置文件

配置完成后,每次访问网页都会写入tongji.db文件中,利用文件锁进行高并发控制,再读取,然后写入到system.php的配置文件中

4.总结

就可以在模板中使用了

我 秦始皇 打钱