如果需要做页面浏览统计,用 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 有写入权限)