※ 引述《girlyou24 ( 女)》之銘言:
: 查了之前的文章 有寫到計數器的寫法 但他是一直按重新整理 就增加一個 不太準
: <?php
: : $fp=fopen('counter/counter1.txt','r');
: : $counter=fread($fp,6);
: : fclose($fp);
: : $counter=$counter+1;
: : $fp=fopen('counter/counter1.txt','w');
: : fwrite($fp,$counter,strlen($counter));
: : fclose($fp);
: echo "您是第" .$counter." 位訪客";
: : ?>
: 不知道怎麼樣 可以限一個ip 一天只能算一次呢
: 謝謝
自己在做流量統計是用 bbclone
這東西超好用的
官網在這裡
http://bbclone.de/
這是官方的範例
http://bbclone.de/demo/
之前我在我自己的部落格有寫過這個東西的介紹
http://f23ko.com/36
使用方式,簡單來講,就是把那個套件抓下來,往網站的根目錄裡一丟
把var資料夾的寫入權限全部開放 (因為記數記錄全部都寫在那邊)
再依照官網的那種方式,在想要計數的網頁加上一段php就好了
插入計數的範例,可以點官網旁邊的
Manual
再點
Using BBClone Stats
Examples of code snippets ..... (略)
就可以看到了
其中包含兩個很重要的部分:
1.計數 可以決定觸發計數的位置,以及設定計數的名稱 (就是網頁頁面名稱)
2.顯示 可以在自己網頁上嵌入統計數據,請看官方說明
另外,關於設定方面,可以到/conf 這個資料夾下去找,設定檔都在那邊
而且設定檔的說明寫的都很清楚
原PO想要的功能應該都能調出來
=====================================================
另外,如果一個網站下有很多網頁都要計數
可以藉由更改 .htaccess 檔的方式去實現
有些免費的虛擬主機或是部落格會有廣告,不論怎麼改都改不掉
就是用.htaccess的方式插進去的
我們用的方法一樣,差別只是:我們插的是計數器
方法很簡單,首先要開啟apache的.htaccess的功能
這點可能會因為版本不一樣而有差異,請自己去google
我自己的.htaccess啟動方法
是去 /etc/apache2/site/sites-available/xxxxx
找到主機的設定檔,把AllowOverride 改掉就好
接著,把.htaccess 裡加入這段
<FilesMatch "\.(php)$">
php_value short_open_tag "Off"
php_value auto_append_file "/var/www/xxxxxx/bbclone/count.php"
</FilesMatch>
其中
"/var/www/xxxxxx/bbclone/count.php"
是計數頁面的位置,請使用絕對路徑
我習慣把他放在bbclone的資料夾下,因為我不希望進去bbclone看數據時
還一直觸發計數
只要這樣做,以後開啟.htaccess同個資料夾下,或是子資料夾下的所有php檔案
就都會觸發計數器
當然,如果想改成jpg、html、htm,也都可以,只要修改 <FilesMatch "\.(php)$">
中的正規表示式就可以了
另外,關於count.php的寫法是:
<?php
//如果連進去的是與這個檔案同個資料夾,或子資料夾下,就不計數
if (strpos($_SERVER['SCRIPT_FILENAME'] , (__DIR__."/"))===false)
{
//連進來的網址
$link_in_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
define("_BBC_PAGE_NAME", $link_in_url); //bbclone的計數器標題
//我是設定:顯示網址
define("_BBCLONE_DIR", __DIR__."/"); //bbclone的根目錄
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) include_once(COUNTER);
//echo "是否計數 TRUE<BR>\n";
}
//else
//{
// echo "是否計數 False<BR>\n";
//}
?>
<?php
//echo $_SERVER['SCRIPT_FILENAME']."<BR>\n";
//echo __DIR__."/<BR>\n";
//echo COUNTER."<BR>\n";
//echo __FILE__."<BR>\n";
//echo __DIR__."<BR>\n";
//echo dirname(__FILE__)."<BR>\n";
//echo _BBC_PAGE_NAME."<BR>\n";
//echo "<br>\n";
//echo $link_in_url."<BR>\n";
//var_dump($_SERVER);
?>
其中,注解部分是debug用的
可以測試看看有沒有被呼叫到,或是呼叫到的時候會不會計數
以及顯示的正不正確等等
以上這些程式碼不會被任何套件、網頁受限
如果要加掛在不同網站下,只要把整個.htaccess跟bbclone直接copy過去就可以用了
連改都不必改
=======================================================
另外,我很懶
能找套件來用,就用套件
但如果原PO是在做作業的話
那還是自己寫吧
簡單的流程差不多就是....
1.訪客點網頁,頁面觸發一個php檔
2.那個php檔讀取一個文件檔,看看有沒有那個IP的記錄,以及有沒有超過24小時
如果符合計數條件,計數,並把訪客資料記錄(IP、時間)在一個文件檔裡
如果沒有,跳過計數
3.完畢
--
寫做F23,讀做純潔。
http://f23ko.com
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.35.18.75