php统计网站/html页面浏览访问次数程序
发布:smiling 来源: PHP粉丝网 添加日期:2014-07-21 11:25:46 浏览: 评论:0
本文章来给大这介绍了php自己写的一些常用的网站统计代码写法,用无数据库的与使用数据库及html静态页面浏览资次数统计代码,大家可进入参考.
实例1,直接使用txt文件进行统计的代码,代码如下:
- <?php
- session_start();//定义session,同一IP登录不累加
- $filepath = '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
- public function ShowMyCounter(){
- //定义变量
- $IsGone = FALSE;
- //读取数据
- $querysql = "SELECT * FROM `mycounter` WHERE id = Ƈ' ";
- $queryset = mysql_query($querysql);
- $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 = Ƈ' ";
- $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 = Ƈ' ";
- $myquery = mysql_query($upd_sql);
- }
- echo "总访问量:".$Counter;
- echo "
- ";
- echo "今日流量:".$CounterToday;
- echo "
- ";
- echo "昨日流量:".$CounterLastDay;
- }else{//如果数据库为空时,相应的操作
- }
- }
- ?>
当然,需要在文件第一行开始写出如下代码:
- <?PHP
- session_start();
- if( !isset($_COOKIE["user"]) ){
- setcookie("user","newGuest",time()+3600);
- }else {
- setcookie("user","oldGuest");
- }
- ?>
如果是静态页面我们上面的方法是不可以实现的,但下面再举一个不错的统计实例,代码如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- <mce:script language="javascript" src="count.php?aid=1&t=show" mce_src="count.php?aid=1&t=show"></mce:script>
- <mce:script language="javascript" src="count.php?aid=1" mce_src="count.php?aid=1"></mce:script>
- </head>
- <body>
- <h1>php统计静态html页面浏览访问次数代码</h1>
- <hr>
- </body>
- </html>
count.php代码如下:
- <?php
- $aid = isset( $_GET['aid'] )?$_GET['aid']:'';
- $t = isset( $_GET['t'] )?$_GET['t']:'';
- if(intval( $aid )){
- if( $t =='show' ){
- echo "document.write('这里是显示浏览次数,可以从数据库读出来');";
- }
- else{
- $conn = mysql_connect('localhost','root','root') ;
- $sql = "Update count set click_num = click_num+1 where aid ='$aid'";
- mysql_db_query('db_test',$sql,$conn);
- }
- }
- ?>
数据库,代码如下:
- --
- -- 表的结构 `count`
- --
- CREATE TABLE IF NOT EXISTS `count` (
- `id` int(11) NOT NULL auto_increment,
- `aid` int(11) default NULL,
- `click_num` int(11) default NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=2 ;
Tags: php统计网站 html页面浏览
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)