PHP无数据库储存并显示网站访问次数
首先必须在页面顶部定义session:
<?php
session_start();//定义session,同一IP登录不累加
?>
然后在你想要显示地方插入:
<?php
error_reporting(0);
header ( "Content-type: text/html; charset=utf-8" );
//设置数据文件路径
$file = dirname(__FILE__).'/tongji.db';
$data = unserialize(file_get_contents($file));
//设置记录键值
$total = 'total';
$month = date('Ym');
$today = date('Ymd');
$yesterday = date('Ymd',strtotime("-1 day"));
if ($_SESSION['temp'] == '')//判断$_SESSION[temp]的值是否为空,其中的temp为自定义的变量
{//为空,则第一次访问,加1
$tongji = array();
// 总访问增加
$tongji[$total] = $data[$total] + 1;
// 本月访问量增加
$tongji[$month] = $data[$month] + 1;
// 今日访问增加
$tongji[$today] = $data[$today] + 1;
//保持昨天访问
$tongji[$yesterday] = $data[$yesterday];
//保存统计数据
file_put_contents($file, serialize($tongji));
//输出数据
$total = $tongji[$total];
$month = $tongji[$month];
$today = $tongji[$today];
$yesterday = $tongji[$yesterday]?$tongji[$yesterday]:0;
}else
{//不为空则已经访问过,直接输出文件里的记录
//输出数据
$total = $data[$total];
$month = $data[$month];
$today = $data[$today];
$yesterday = $data[$yesterday];
}
$_SESSION['temp'] = 1;//登录以后,给$_SESSION[temp]赋一个值1
echo "总访问 {$total}, 本月 {$month}, 昨日 {$yesterday}, 今日 {$today}";
//注释下面一行可以实现同一IP登录不累加效果,测试时可以打开
//session_destroy();
?>
更改文件内数据
请用代码编辑器打开tongji.db
文件内数据形式为:
a:4:{s:5:"total";i:15155;i:201608;i:265;i:20160822;i:28;i:20160821;i:35;}
i:15155;——i值表示总访问量;
i:201608;i:265;——第一个i值为月份时间,第二个i值为月访问量;
i:20160822;i:28;——第一个i值为当天时间,第二个i值为当天访问量;
i:20160821;i:35;——第一个i值为昨天时间,第二个i值为昨天访问量;
