如果需要做頁面瀏覽統計,用 PHP 來做十分簡單,但如果在一些 HTML 頁面上,那就要用一些較迂迴的方法了。
實現方法
如果要不修改檔案名稱的情況下實現這個功能,也有好幾個方法,例如修改 web server 設定,讓 .html 副檔案也可以執行 php,或者是讀取 web server 的存取紀錄檔也可以。
但以上兩個方法對於沒有自己 web server 的用戶不太適合,而我會使用的方法是 PHP + JavaScript。
本站另一篇文章 在 HTML 頁面上顯示 php 動態內容 己介紹了在 HTML 網頁中顯示 php 內容,而本文也會使用同一方法來做,那即是說會在 HTML 頁面中引入 php 程式來執行。
以下是 html 頁面及 php 程式的內容:
article.html
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Example</title> </head> <body bgcolor="#FFFFFF" text="#000000"> 本文瀏覽次數: <script type="text/javascript" language="Javascript" src="/article_counter.php"></script> </body> </html> |
article_counter.php
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php // get the current view $counter = file_get_contents("article_counter.dat"); if (!isset($_COOKIE['article_read'])) { setcookie("article_read", 1, time()+3600); $counter++; $fp = fopen("article_counter.dat, "w"); fwrite($fp, $counter); fclose($fp); } echo "document.write('" . $counter . "');"; ?> |
以上例子中,article.html 內的第 6 行以 javascript 的方法引入 article_counter.php,而 article_counter.php 會先打開 article_counter.dat 取得目前已閱讀次數,然後判決當使用者在過去一小時沒有看過這個頁面的話,便更新 article_counter.dat 內的數值,而在最後第 13 行就是印出 javascript 的語法。 (在使用時請確定 article_counter.dat 有寫入權限)