如果需要做页面浏览统计,用 PHP 来做十分简单,但如果在一些 HTML 页面上,那就要用一些较迂回的方法了。
实现方法
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
如果要不修改文件名称的情況下实现这个功能,也有好几个方法,例如修改 web server 设置,让 .html 副文件也可以执行 php,或者是读入 web server 的访问纪錄档也可以。
但以上两个方法对於沒有自己 web server 的用戶不太适合,而我会使用的方法是 PHP + JavaScript。
本站另一篇文章 在 HTML 页面上显示 php 动态內容 己介绍了在 HTML 网页中显示 php 內容,而本文也会使用同一方法来做,那即是說会在 HTML 页面中引入 php 程序来执行。
以下是 html 页面及 php 程序的內容:
article.html
PHP 代码:
01 <html>
02 <head>
03 <title>Example</title>
04 </head>
05 <body bgcolor="#FFFFFF" text="#000000">
06 本文瀏覽次數: <script type="text/javascript" language="Javascript" src="/article_counter.php"></script>
07 </body>
08 </html>
article_counter.php
PHP 代码:
01 <?php
02 // get the current view
03 $counter = file_get_contents("article_counter.dat");
04
05 if(!isset($_COOKIE['article_read'])){
06 setcookie("article_read", 1, time()+3600);
07 $counter++;
08 $fp = fopen("article_counter.dat, "w");
09 fwrite($fp, $counter);
10 fclose($fp);
11 }
12
13 echo "document.write('" . $counter . "');";
14 ?>
以上例子中,article.html 內的第 6 行以 javascript 的方法引入 article_counter.php,而 article_counter.php 會先打開 article_counter.dat 取得目前已閱讀次數,然後判決當使用者在過去一小時沒有看過這個頁面的話,便更新 article_counter.dat 內的數值,而在最後第 13 行就是印出 javascript 的語法。 (在使用時請確定 article_counter.dat 有寫入權限)