实例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) |
上面使用的是txt文件,下面我们来介绍一个mysql数据库操作实例
代码如下 | 复制代码 |
CREATE TABLE `mycounter` ( |
函数
代码如下 | 复制代码 |
<?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 ; |
时间: 2024-10-01 00:44:53