PHP是現在流行的服務器端腳本語言,它的功能非常強大,你可以利用它做幾乎任何事。不需要復雜的變量和代碼,你就可以非常迅速地做出漂亮的計數器來。下面,就讓我們一步一步的來做。
其實,計數器的原理大家都知道,首先,確定一個記錄文件,例如counter.txt或counter.log,每一次訪問這個頁面,就對這個文件加1,然後把結果顯示出來。
因此,我們的PHP代碼開始應該是這樣的:
<?PHP
§countfile = "js/counter.inf";
//定義計數器寫入的文件是當前目錄下JS目錄中//counter.inf,然後我們應當測試該文件能否打開
if ((§fp = fopen(§countfile, "r+")) == false) { //用讀寫模式打開文件,若不能打開就退出
printf ("Open file %s failed!",§countfile);
exit;
}
else
{
//如果文件能夠正常打開,就讀入文件中的數據,假設是1
§count = fread (§fp,10);
//讀取10位數據
§count = §count + 1;
//count ++
fclose (§fp);
//關閉當前文件
§fp = fopen(§countfile, "w+")
//以覆蓋模式打開文件
fwrite (§fp,§count);
//寫入加1後的新數據
fclose (§fp);
//並關閉文件
}
這時,整個計數工作就完成了,如果只是簡單的文字計數的話,在這裡就可以輸出變量§count的值。下面是將§count轉換為圖片模式的代碼:
§fp = fopen (§countfile, "r"); //以只讀模式打開文件
§array_count = 1; //定義一個表示數組元素位置的變量,下面要用
while (! feof(§fp)) {
§current_number = fgetc(§fp);
§counter_array[§array_count] = §current_number;
§array_elements = count (§counter_array);
§array_count = §array_count + 1;
}
上面這個while循環的作用是把每一位數分離出來。它從counter.inf中由左到右逐位讀取數值,並依次寫入一個叫counter_array的數組中,這個數組的索引是從1開始的(§array_count)。如果現在counter.inf中的數字是158,那麼數組§counter_array[]就像這樣:§counter_array[1] = 1、§counter_array[2] = 5、§counter_array[3] = 8。有了上面這些工作,我們就可以方便地顯示不同的數字圖片了,顯示代碼如下:
echo ("<table border="0" height="5" align="center"><tr><td bgcolor="#bab389" align="center">歡迎您,第");
for (§array_id = 1;§array_id<§array_elements; ++ §array_id) {
echo ("<img src="imagescounter§counter_array[§array_id].gif" align=absmiddle>");
}
echo ("位客人</td></tr></table>");
}
上面的代碼很簡單,就是畫一個表格,並依次在表格中顯示所需的圖片。在imagescounter目錄下有0.gif至9.gif十張圖片,for循環遍歷數組,從高位到低位給出每一位數相應的圖片,直到數組的尾部。這樣,一個完整的計數器就完成了。