一般的計數器程式用的執行外部程式函數 exec(),但很多主機空間(包括收費的)拒絕這個危險操作。
我們只好用fread(),fwrite()等檔案讀寫函數,關鍵在於採用哪種方式fopen()開啟檔案。試了N次後,證明以下程式是可行,在收費空間上獲得驗證。
count目錄
|---count.PHP
|---counter.txt
|---0~9的數字GIF圖片(0.gif,...,9.gif)
以下為引用的內容:
1<?
2/* 本檔案為count\conut.php */
3
4$countfile = "count/counter.txt";
5
6if (!file_exists("$countfile")){
7 $fp=fopen("$countfile","w");
8 $num=1;
9 fputs($fp,$num,8);
10 fclose($fp);
11 }
12else{
13 $fp=fopen("$countfile","rw+");
14 $num=fread($fp,8);
15 $num++;
16 rewind($fp);
17 fputs($fp,$num,8);
18 fclose($fp);
19 }
20
21/*如果不用圖片顯示數字,請將以下直到 ?> 之前的部分,改為 echo "<font color=red>".$num."</font>";之類*/
22$len_str = strlen($num);
23for($i=0;$i<$len_str;$i++){
24$numbers_exploded = substr($num,$i,1);
25$output_str = $output_str . "<img src=\"count/$numbers_exploded.gif\">";
26}
27echo $output_str;
28?>
使用方法:
例如,在count檔案夾外面建立一個test.php。其它位置請修改 $countfile路徑。
在test.php要顯示的地方直接require一下count.php檔案(注意路徑)。
以下為引用的內容:
<br>
<?php
echo "您是第";
require("count/count.php");
echo "位訪客";
?>
強調最後一個問題,請設定counter.txt檔案可讀寫,Windows下檔案許可權為everyone,Linux下至少為444。網上的檔案或Linux下的檔案使用權限設定要使用FTP軟體。