MYSQL基礎筆記(五)- 練習作業:網站統計練習

來源:互聯網
上載者:User

標籤:

作業:網站統計

  1、將使用者的訪問資訊記錄到檔案中,獨佔一行,記錄IP地址

1 <?php2 //網站統計3     header(‘Content-type:text/html;charset=utf-8‘);4 5 //擷取使用者資訊6     $ip = $_SERVER[‘REMOTE_ADDR‘];7 8 //寫入檔案(追加)9     file_put_contents(‘record.text‘,$ip."\r\n",FILE_APPEND);

  2、所有資訊都是通過檔案中記錄的內容來計算的,讀取整個檔案,一行代表訪問一次,使用file函數讀取。

1 //讀取資料 ,以行為單位2     $info = file(‘record.text‘);

  3、總的訪問次數等於總行數,就是讀取的數組的總記錄數。

1 //求出網站的總訪問量2     $visits = count($info);

  4、求出當前用的訪問次數,目前使用者的IP在數組中出現的次數

1 //求出目前使用者(IP)出現的次數2     $ip_visits = 0;3     foreach($info as $each_ip)4     {   //比較5         if($each_ip == $ip)6             $ip_visits++;7     }

  5、總共有多少個使用者訪問過,遍曆當前所有的訪問使用者資訊,另外使用一個數組儲存。如果當前IP在數組中存在,那麼不加入,否則加入。最後統計新數組即可。

 1 foreach($info as $each_ip) 2     { 3         //統計當前數組中擁有的的獨立IP數 4         if(!in_array($each_ip,$unique_ips)) 5             $unique_ips[] = $each_ip; 6  7         //比較:從檔案中讀出的是一行,用trim去掉分行符號空格 8         if(trim($each_ip) == $ip) 9             $ip_visits++;10 11         //統計$unique_ips中的元素個數:就是獨立ip數,總使用者12         $users = count($unique_ips);13     }

  6、求出目前使用者是第幾位訪問訪問者,只要判斷當前IP在獨立使用者數組中出現的位置即可。

  下面是整個作業的代碼:

 1 <?php 2 //網站統計 3     header(‘Content-type:text/html;charset=utf-8‘); 4 //擷取使用者資訊 5     $ip = $_SERVER[‘REMOTE_ADDR‘]; 6 //寫入檔案(追加) 7     file_put_contents(‘record.text‘,$ip."\r\n",FILE_APPEND); 8 //讀取資料 ,以行為單位 9     $info = file(‘record.text‘);10 //求出網站的總訪問量11     $visits = count($info);12 //求出目前使用者(IP)出現的次數13     $ip_visits = 0;14     $unique_ips = array();15     foreach($info as $each_ip)16     {17         //統計當前數組中擁有的的獨立IP數18         if(!in_array($each_ip,$unique_ips))19         {   //講當前新的使用者加入到獨立的ip數組中20             $unique_ips[] = $each_ip;21             //判斷當前新加的IP($each_ip)是否是目前使用者的IP22             if($ip == trim($each_ip)) $user_visit = count($unique_ips);23 24         }25 26         //比較:從檔案中讀出的是一行,用trim去掉分行符號空格27         if(trim($each_ip) == $ip)28             $ip_visits++;29 30         //統計$unique_ips中的元素個數:就是獨立ip數,總使用者31         $users = count($unique_ips);32     }33 //需求_輸出34     echo "歡迎訪問,你是第{$user_visit}個使用者,當前網站一共有{$users}位使用者,35     當前網頁一共被訪問了{$visits}次,你當前是第{$ip_visits}位訪問";36 ?>

 本作業所涉及的幾個PHP函數總結:

  1、$_SERVER[‘REMOTE_ADDR‘]

  $_SERVER 是一個包含了諸如頭資訊(header)、路徑(path)、以及指令碼位置(script locations)等等資訊的數組。這個數組中的項目由 Web 服務器建立。

  ‘REMOTE_ADDR‘ 瀏覽當前頁面的使用者的 IP 位址。

 

  2、 file_put_contents— 將一個字串寫入檔案

1 int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

  和依次調用 fopen(),fwrite() 以及 fclose() 功能一樣。

  參數
  filename

  要被寫入資料的檔案名稱。

  data

  要寫入的資料。類型可以是 string,array 或者是 stream 資源(如上面所說的那樣)。

  如果 data 指定為 stream 資源,這裡 stream 中所儲存的快取資料將被寫入到指定檔案中,這種用法就相似於使用 stream_copy_to_stream() 函數。

  參數 data 可以是數組(但不能為多維陣列),這就相當於file_put_contents($filename, join(‘‘, $array))

  flags

  flags 的值可以是 以下 flag 使用 OR (|) 運算子進行的組合。

context

  一個 context 資源。

 

MYSQL基礎筆記(五)- 練習作業:網站統計練習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.