MENU▼

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值为昨天访问量;


请为这篇文章评分:
( 这篇文章尚未评分 )