1、原生
簡單的網站訪問量計數器實現,具體如下
首先說明思路:
1.用戶向服務器發出訪問請求
2.服務器讀取訪問次數文件,+1,向客戶端返回
3.服務器保存新的瀏覽次數
4.新用戶訪問,重複123即可
解決方案(主要算法):
1.數據文件:counter.dat
2.讀出數據文件
打開文件;
如果不存在,創建,並以0爲初識數據;
否則,讀出數據;
關閉文件。
3.把累加後的數據寫入文件counter.dat
累加數據;
打開文件;
寫入數據;
關閉文件;
4.向網頁輸出信息;
建立Count_Visitor文件夾。
在Count_Visitor文件夾中,創建Count_Visitor.php文件,並鍵入以下代碼:
<html>
<head>
<meta charset="UTF-8">
<title>瀏覽計數器[email protected]</title>
</head>
<body>
<?php
//數字輸出網頁計數器
$max_len = 9;
$CounterFile = "counter.dat";
if(!file_exists($CounterFile)){ //如果計數器文件不存在
$counter = 0;
$cf = fopen($CounterFile,"w"); //打開文件
fputs($cf,'0'); //初始化計數器
fclose($cf); //關閉文件
}
else{ //取回當前計數器的值
$cf = fopen($CounterFile,"r");
$counter = trim(fgets($cf,$max_len));
fclose($cf);
}
$counter++; //計數器加一
$cf = fopen($CounterFile,"w"); //寫入新的數據
fputs($cf,$counter);
fclose($cf);
?>
<div id="dd" align="center">
<span>歡迎您!</span>
<span>您是本站的第
<?php
echo $counter; //輸出計數器
?>
位訪客!</span>
</div>
</body>
</html>
如果有需要可以自己鍵入css文件裝飾.
代碼中包含的變量及其含義
$max_len : 自定義變量。計數器的最大位數;
$CounterFile : 自定義變量。計數器存放的文件(路徑和文件名);
$counter : 自定義變量。計數器的值;
$cf : 自定義變量。打開計數文件的句柄;
代碼中包含的函數與含義
file_exists($CounterFile) : 判斷文件是否存在;
fopen($CounterFile,”w”) : 以寫入方式打開文件。(函數自帶屬性,如果不存在則創建)
fopen($CounterFile,'r') : 以只讀方式代開文件。
fgets($cf,$max_len) : 從文件中讀出指定長度的字符
fputs($cf,”0”) : 把字符“0”寫入$cf
fclose($cf) : 關閉$cf打開的文件
trim(fgets($cf,$max_len)) : 去除 取出字符串的 兩邊的空格符
2、使用thinkPHP框架封裝好的方法,爲字段點擊一次增加一次計算
setField 方法返回影響數據的條數,沒修改任何數據字段返回 0
自增或自減一個字段的值
setInc/setDec 如不加第二個參數,默認值爲1
// score 字段加 1
Db::table('think_user')->where('id', 1)->setInc('score');
// score 字段加 5
Db::table('think_user')->where('id', 1)->setInc('score', 5);
// score 字段減 1
Db::table('think_user')->where('id', 1)->setDec('score');
// score 字段減 5
Db::table('think_user')->where('id', 1)->setDec('score', 5);
每訪問一次增加1
Db::name('表名')->where('id','=',$id)->setInc('記錄訪問量的字段名');