码迷,mamicode.com
首页 > Web开发 > 详细

php统计网站 / html页面 浏览访问次数程序

时间:2015-11-05 00:31:18      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

本文章来给大这介绍了php自己写的一些常用的网站统计代码写法,用无数据库的与使用数据库及html静态页面浏览资次数统计代码,大家可进入参考。

实例1

直接使用txt文件进行统计的代码

<?php
    session_start();    //定义session,同一IP登录不累加
    $filepath = ‘count.txt‘;    //count.txt 统计次数
    if($_SESSION[‘temp‘] == ‘‘){    //判断$_SESSION[temp]的值是否为空,其中的temp为自定义的变量
     if (!file_exists($filepath)){
         //检查文件是否存在,不存在刚新建该文件并赋值为0
              $fp = fopen($filepath,‘w‘);
              fwrite($fp,0);
              fclose($fp);
              counter($filepath);
         }else{
              counter($filepath);
         }
             $_SESSION[‘temp‘] = 1;    //登录以后,给$_SESSION[temp]赋一个值1
        }

echo ‘欢迎来到懒人素材网站,您是本站第<font color="#FF0000">‘.file_get_contents($filepath).‘</font>位访客‘;

//counter()方法用来得到文件内的数字
function counter($f_value)
{
     //用w模式打开文件时会清空里面的内容,所以先用r模式打开,取出文件内容,保存到变量
     $fp = fopen($f_value,‘r‘) or die(‘打开文件时出错。‘);
     $countNum = fgets($fp,1024);
     fclose($fp);
     $countNum++;
     $fpw = fopen($f_value,‘w‘);
     fwrite($fpw,$countNum);
     fclose($fpw);
}
    //注释下面一行可以实现同一IP登录不累加效果,测试时可以打开
    // session_destroy();
?>

上面使用的是txt文件,下面我们来介绍一个mysql数据库操作实例

CREATE TABLE `mycounter` ( 
`id` int(11) NOT NULL auto_increment, 
`Counter` int(11) NOT NULL, 
`CounterLastDay` int(10) default NULL, 
`CounterToday` int(10) default NULL, 
`RecordDate` date NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=2;

 

<?PHP 
    session_start(); 
    if( !isset($_COOKIE["user"]) ){ 
    setcookie("user","newGuest",time()+3600); 
    }else { 
    setcookie("user","oldGuest"); 
    } 

     function ShowMyCounter(){ 
         $id = $_GET[‘id‘];
        //定义变量 
        $IsGone = FALSE; 
        // 连接数据库
        $conn = mysql_connect(‘localhost‘, ‘root‘, ‘root‘);
        mysql_select_db(‘php_test‘, $conn);
        //读取数据 
        $querysql = " SELECT * FROM `mycounter` WHERE id = ‘$id‘ "; 
        // $querysql = " SELECT * FROM `mycounter` "; 
        $queryset = mysql_query($querysql, $conn); 
        $row = mysql_fetch_array($queryset); 

        //获得时间量 
        $DateNow = date(‘Y-m-d‘); 
        $RecordDate = $row[‘RecordDate‘]; 
        $DateNow_explode = explode("-",$DateNow); 
        $RecordDate_explode = explode("-",$RecordDate); 


        //判断是否已过去一天 
        if( $DateNow_explode[0] > $RecordDate_explode[0]) 
            $IsGone = TRUE; 
        else if( $DateNow_explode[0] == $RecordDate_explode[0] )
        { 
            if( $DateNow_explode[1] > $RecordDate_explode[1] ) 
                $IsGone = TRUE; 
            else if( $DateNow_explode[1] == $RecordDate_explode[1] )
            { 
                if( $DateNow_explode[2] > $RecordDate_explode[2] ) $IsGone = TRUE; 
            }
            else BREAK; 
        }
        else BREAK; 
        //根据IsGone进行相应操作 
        IF($IsGone) { 
            $RecordDate = $DateNow; 
            $CounterToday = 0; 
            $CounterLastDay = $row[‘CounterToday‘]; 
            $upd_sql = "update mycounter set RecordDate = ‘$RecordDate‘,CounterToday = ‘$CounterToday‘,CounterLastDay = ‘$CounterLastDay‘ WHERE id = ?‘ "; 
            mysql_query($upd_sql); 
        } 

        //再次获取数据 
        $querysql = " SELECT * FROM `mycounter` WHERE id = ‘$id‘ ";
        $queryset = mysql_query($querysql); 
        $Counter = $row[‘Counter‘]; 
        $CounterToday = $row[‘CounterToday‘]; 
        $CounterLastDay = $row[‘CounterLastDay‘]; 
        if($row = mysql_fetch_array($queryset) )
        { 
            if( $_COOKIE["user"] != "oldGuest" ){    //同一个用户只记录一次访问记录 
                $Counter = ++$row[‘Counter‘]; 
                $CounterToday = ++$row[‘CounterToday‘]; 
                $upd_sql = "update mycounter set counter = ‘$Counter‘, CounterToday = ‘$CounterToday‘ WHERE id = $id "; 
                $myquery = mysql_query($upd_sql); 
            } 
            echo "总访问量:".$Counter; 
            echo " 
            "; 
            echo "今日流量:".$CounterToday; 
            echo " 
            "; 
            echo "昨日流量:".$CounterLastDay; 
        }
        else{
            //如果数据库为空时,相应的操作 
        } 
    } 
ShowMyCounter();
?>

如果是静态页面我们上面的方法是不可以实现的,但下面再举一个不错的统计实例

 

未完成。。。。。。。。。。。。。。

php统计网站 / html页面 浏览访问次数程序

标签:

原文地址:http://www.cnblogs.com/weishang/p/4937806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!