php統計網站/html頁面瀏覽訪問次數程序


本文章來給大這介紹了php自己寫的一些常用的網站統計代碼寫法,用無數據庫的與使用數據庫及html靜態頁面瀏覽資次數統計代碼,大家可進入參考。
 

實例1

直接使用txt文件進行統計的代碼

 代碼如下 復制代碼

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 '歡迎來到懶人站長素材網站,您是本站第'.file_get_contents($filepath).'位訪客';
//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 ;

函數

 

 代碼如下 復制代碼
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{//如果數據庫為空時,相應的操作


>

當然,需要在文件第一行開始寫出如下代碼:

 代碼如下 復制代碼

session_start(); 
if( !isset($_COOKIE['user']) ){ 
setcookie('user','newGuest',time()+3600); 
}else { 
setcookie('user','oldGuest'); 

>

如果是靜態頁面我們上面的方法是不可以實現的,但下面再舉一個不錯的統計實例

 

 代碼如下 復制代碼









 

php統計靜態html頁面瀏覽訪問次數代碼


 


count.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 ;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM