訪客計數器是早期個人網站常見功能。雖然現代多使用資料庫或第三方服務,但以文字檔儲存計數是理解檔案 I/O 操作的最佳入門範例。
num.txt)。| 函數 | 用途 | 常用模式 |
|---|---|---|
fopen() | 開啟檔案 | r(唯讀)、w(寫入截斷)、a(附加) |
fgets() | 讀取一行 | 指定長度 length,實際讀 length-1 字元 |
fputs() | 寫入字串 | 可選長度參數 |
fclose() | 關閉檔案 | 釋放資源 |
<?php
$counterFile = "num.txt";
// 若檔案不存在,建立並初始化為 0
if (!file_exists($counterFile)) {
$fp = fopen($counterFile, "w");
fputs($fp, "0");
fclose($fp);
}
// 讀取、遞增、寫回
$fp = fopen($counterFile, "r+");
$count = (int)fgets($fp, 20);
$count++;
rewind($fp); // 將指標移回檔案開頭
ftruncate($fp, 0); // 清空檔案內容
fputs($fp, $count);
fclose($fp);
echo "您是第 $count 位訪客。";
?>
flock($fp, LOCK_EX) 防止多使用者同時寫入導致資料遺失。UPDATE counter SET hits = hits + 1)或 Redis INCR 原子操作。$_SERVER['HTTP_USER_AGENT'] 或 IP 白名單過濾爬蟲流量。此範例展示 PHP 檔案操作基礎,實務上請依據流量與架構選擇適當儲存方案。