加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-06-19 14:50:54 所属栏目:PHP教程 来源:
导读:本文章来给大这介绍了php自己写的一些常用的网站统计代码写法,用无数据库的与使用数据库及html静态页面浏览资次数统计代码,大家可进入参考.

实例1,直接使用txt文件进行统计的代码,代码如下:

<?php
session_s
本文章来给大这介绍了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 ; 
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章