php专区

 首页 > php专区 > PHP应用 > 常用功能 > php统计网站/html页面浏览访问次数程序 - php高级应

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

分享到:
【字体:
导读:
          本文章来给大这介绍了php自己写的一些常用的网站统计代码写法,用无数据库的与使用数据库及html静态页面浏览资次数统计代码,大家可进入参考 实例1,直接使用txt文件进行统计的代码,代...

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

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

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

  1. session_start();//定义session,同一IP登录不累加 
  2. $filepath = 'count.txt'
  3. if ($_SESSION['temp'] == '')//判断$_SESSION[temp]的值是否为空,其中的temp为自定义的变量 
  4.  if (!file_exists($filepath))//检查文件是否存在,不存在刚新建该文件并赋值为0 
  5.  { 
  6.   $fp = fopen($filepath,'w'); 
  7.   fwrite($fp,0); 
  8.   fclose($fp); 
  9.   counter($filepath); 
  10.  }else 
  11.  { 
  12.   counter($filepath); 
  13.  } 
  14.  $_SESSION['temp'] = 1;//登录以后,给$_SESSION[temp]赋一个值1 
  15. echo '欢迎来到懒人站长素材网站,您是本站第'.file_get_contents($filepath).'位访客'
  16. //counter()方法用来得到文件内的数字 
  17.  
  18. function counter($f_value
  19.  //用w模式打开文件时会清空里面的内容,所以先用r模式打开,取出文件内容,保存到变量 
  20.  $fp = fopen($f_value,'r'or die('打开文件时出错。'); 
  21.  $countNum = fgets($fp,1024); 
  22.  fclose($fp); 
  23.  $countNum++; 
  24.  $fpw = fopen($f_value,'w'); 
  25.  fwrite($fpw,$countNum); 
  26.  fclose($fpw); 
  27. //注释下面一行可以实现同一IP登录不累加效果,测试时可以打开 
  28. session_destroy(); 
  29. ?> 

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

  1. CREATE TABLE `mycounter` (  
  2. `id` int(11) NOT NULL auto_increment,  
  3. `Counter` int(11) NOT NULL,  
  4. `CounterLastDay` int(10) default NULL,  
  5. `CounterToday` int(10) default NULL,  
  6. `RecordDate` date NOT NULL,  
  7. PRIMARY KEY (`id`)  
  8. ) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=2 ; 

函数代码如下:

  1. public function ShowMyCounter(){  
  2. //定义变量  
  3. $IsGone = FALSE;  
  4. //读取数据  
  5. $querysql = "SELECT * FROM `mycounter` WHERE id = Ƈ' ";  
  6. $queryset = mysql_query($querysql);  
  7. $row = mysql_fetch_array($queryset);  
  8. //获得时间量  
  9. $DateNow = date('Y-m-d');  
  10. $RecordDate = $row['RecordDate'];  
  11. $DateNow_explode = explode("-",$DateNow);  
  12. $RecordDate_explode = explode("-",$RecordDate);  
  13. //判断是否已过去一天  
  14. if$DateNow_explode[0] > $RecordDate_explode[0]) $IsGone = TRUE;  
  15. else if$DateNow_explode[0] == $RecordDate_explode[0] ){  
  16. if$DateNow_explode[1] > $RecordDate_explode[1] ) $IsGone = TRUE;  
  17. else if$DateNow_explode[1] == $RecordDate_explode[1] ){  
  18. if$DateNow_explode[2] > $RecordDate_explode[2] ) $IsGone = TRUE;  
  19. }else BREAK;  
  20. }else BREAK;  
  21. //根据IsGone进行相应操作  
  22. IF($IsGone) {  
  23. $RecordDate = $DateNow;  
  24. $CounterToday = 0;  
  25. $CounterLastDay = $row['CounterToday'];  
  26. $upd_sql = "update mycounter set RecordDate = '$RecordDate',CounterToday = '$CounterToday',CounterLastDay = '$CounterLastDay' WHERE id = Ƈ' ";  
  27. mysql_query($upd_sql);  
  28. }  
  29. //再次获取数据  
  30. $querysql = "SELECT * FROM `mycounter` WHERE id = Ƈ' ";  
  31. $queryset = mysql_query($querysql);  
  32. $Counter = $row['Counter'];  
  33. $CounterToday = $row['CounterToday'];  
  34. $CounterLastDay = $row['CounterLastDay'];  
  35. if($row = mysql_fetch_array($queryset) ){  
  36. if$_COOKIE["user"] != "oldGuest" ){  
  37. $Counter = ++$row['Counter'];  
  38. $CounterToday = ++$row['CounterToday'];  
  39. $upd_sql = "update mycounter set counter = '$Counter',CounterToday = '$CounterToday' WHERE id = Ƈ' ";  
  40. $myquery = mysql_query($upd_sql);  
  41. }  
  42. echo "总访问量:".$Counter;  
  43. echo "  
  44. ";  
  45. echo "今日流量:".$CounterToday;  
  46. echo "  
  47. ";  
  48. echo "昨日流量:".$CounterLastDay;  
  49. }else{//如果数据库为空时,相应的操作  
  50. }  
  51. }  
  52. ?>   

当然,需要在文件第一行开始写出如下代码:

  1. session_start();  
  2. if( !isset($_COOKIE["user"]) ){  
  3. setcookie("user","newGuest",time()+3600);  
  4. }else {  
  5. setcookie("user","oldGuest");  
  6. }  
  7. ?> 

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

  1. "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
  2.  
  3.  
  4. "Content-Type" content="text/html; charset=UTF-8"
  5. Insert title here 
  6. "javascript" src="count.php?aid=1&t=show" mce_src="count.php?aid=1&t=show"
  7. "javascript" src="count.php?aid=1" mce_src="count.php?aid=1"
  8.  
  9.  
  10.  

    php统计静态html页面浏览访问次数代码

     
  11.  
     
  12.  
  13.   

count.php代码如下:

  1.     $aid  = isset( $_GET['aid'] )?$_GET['aid']:''
  2.     $t = isset( $_GET['t'] )?$_GET['t']:''
  3.  if(intval$aid )){ 
  4.   if$t =='show' ){ 
  5.     echo "document.write('这里是显示浏览次数,可以从数据库读出来');"
  6.   } 
  7.   else
  8.     $conn = mysql_connect('localhost','root','root') ; 
  9.     $sql = "Update count set click_num = click_num+1 where aid ='$aid'"
  10.     mysql_db_query('db_test',$sql,$conn); 
  11.   } 
  12.  } 
  13. ?> 

数据库,代码如下:

  1. -- 
  2. -- 表的结构 `count` 
  3. -- 
  4. CREATE TABLE IF NOT EXISTS `count` ( 
  5.   `id` int(11) NOT NULL auto_increment, 
  6.   `aid` int(11) default NULL
  7.   `click_num` int(11) default NULL
  8.   PRIMARY KEY  (`id`) 
  9. ) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=2 ; 
分享到:
php解决ipv6使curl获取网页内容超时解决...
php解决ipv6使curl获取网页内容超时解决办法 问题原因:如果开启了IPv6,curl默认会优先解析 IPv6,在对应域名没有 IPv6 的情况下,会等待 IPv6 dns解析失败 timeout 之后才按以前的正常流程去找 IPv4,在程序中我对curl获取内容都作了较为严格的超时限制,所以就会造成无法获取内容的问题. 解决...
PHP/Shell大文件数据统计并且排序 - php...
PHP/Shell大文件数据统计并且排序 诸多大互联网公司的面试都会有这么个问题,有个4G的文件,如何用只有1G内存的机器去计算文件中出现次数做多的数字(假设1行是1个数组,例如QQ号码),如果这个文件只有4B或者几十兆,那么最简单的办法就是直接读取这个文件后进行分析统计,但是这个是4G的文件,当然...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……