php统计网站 / html页面 浏览访问次数程序
本文章来给大这介绍了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(); ?>
如果是静态页面我们上面的方法是不可以实现的,但下面再举一个不错的统计实例
未完成。。。。。。。。。。。。。。