PHP 計數器只能運行於支援 PHP 的主機。若需在「不支援 PHP 的靜態空間/部落格/論壇」顯示計數,需透過 JavaScript 跨域載入。
counter.phpdocument.write(數字)<script src="https://php-host/counter.php"></script>counter.php<?php
// 設定
$counterFile = __DIR__ . '/counter.txt';
// 初始化
if (!file_exists($counterFile)) {
file_put_contents($counterFile, '0', LOCK_EX);
}
// 讀取、遞增、寫回 (檔案鎖定防併發)
$fp = fopen($counterFile, 'c+');
if (flock($fp, LOCK_EX)) {
$num = (int)fread($fp, filesize($counterFile));
$num++;
ftruncate($fp, 0);
rewind($fp);
fwrite($fp, (string)$num);
flock($fp, LOCK_UN);
}
fclose($fp);
// 輸出 JS 碼
header('Content-Type: application/javascript; charset=utf-8');
echo "document.write($num);";
?>
<!-- 任意 HTML 頁面 -->
<script src="https://your-php-host.com/counter.php"></script>
次瀏覽
application/javascript 確保瀏覽器正確解析charset=utf-8 避免中文亂碼flock(LOCK_EX) 防止高併發下計數遺失header('Cache-Control: no-cache, must-revalidate'); 確保即時更新<script src> 天然支援跨域,無 CORS 問題callback(123); 供前端進一步處理 (如動畫、多處顯示)<script async src=...> 不阻塞頁面渲染document.write 較安全,若輸出 HTML 片段需嚴格過濾 XSS600,目錄 700,防止直接下載