1.网页计数器的工作流程
网页计数器不单独作为页面,而是嵌入在访问的页面中,当用户访问该网页的时候,把网页的访问累计数加1(也可以加10,来迷惑访问者),然后把计数显示在访问的网页中。
1.1用户向服务器发出访问请求;
1.2服务器读取该访问浏览次数的计数,加1后,向客户端返回浏览次数;
1.3服务器保存新的浏览次数;
1.4有新的用户要访问,则重复以上3步。
2.解决方案
计数保存在文件或数据库中,计数的过程是向文件或数据库读/写数据的过程,计数在页面的显示方式有两种:文本方式和图片方式。
主要算法:
(1)数据文件:counter.dat(注:可以不准备,当检查文件不存在时由PHP建立)
(2)读出数据文件counter.dat中数据,算法为
打开文件;
若不存在,则创建它,并以0为初始数据;
否则,读出数据;
关闭文件。
(3)把累加后的数据写入数据文件counter.dat,算法为
累计数据
打开文件
写入数据
关闭文件
(4)向网页输出计数信息
1 <?php 2 /* 3 * 4 * @Authors peng--jun 5 * @Email 1098325951@qq.com 6 * @Date 2015-11-04 11:19:44 7 * @Link http://www.cnblogs.com/xs-yqz/ 8 * @version $Id$ 9 ========================================== 10 $max_len 计数的最大位数 11 $CounterFile 计数存放的文件(路径和文件名) 12 $counter 存放当前的计数的值 13 $cf 打开计数存放文件的句柄 14 15 file_exists($CounterFile) 判断文件是否存在 16 fopen($CounterFile,"w") 打开指定文件,若不存在,建立它 17 fopen($CounterFile,"r") 打开指定文件,若存在,读出文件的内容 18 fgets($cf,$max_length) 从文件中读出指定长度的字符 19 fputs($cf,"0") 把字符写入到文件中 20 fclose($cf) 关闭打开的文件 21 trim(fgets($cf,$max_len))移除字符串中的空格。换行。回车。制表符 22 */ 23 header("Content-type: text/html; charset=UTF-8"); 24 25 ?> 26 <!DOCTYPE html> 27 <html lang="en"> 28 <head> 29 <meta charset="UTF-8"> 30 <title>网页计数器</title> 31 </head> 32 <body> 33 <?php 34 //数字输出的网页计数器 35 $max_len = 8; 36 $CounterFile = "files/counter.dat"; 37 if (!file_exists($CounterFile)) {//如果计数器文件不存在的处理 38 $counter = 0; 39 $cf = fopen($CounterFile, "w");//打开一个文件,在此先建立该文件 40 fputs($cf,"0");//初始化计算器文件 41 fclose($cf);//关闭文件 42 }else{//取回当前计数器的计数 43 $cf = fopen($CounterFile, "r"); 44 $counter = trim(fgets($cf,$max_len));//移除字符串中的空格。换行。回车。制表符 45 fclose($cf); 46 } 47 48 $counter++; 49 $cf = fopen($CounterFile, "w"); 50 fputs($cf,$counter); 51 fclose($cf); 52 ?> 53 54 <div>欢迎您</div> 55 <p>本网站的第 <?php echo $counter; //输出计数器计数?>位访客</p> 56 </body> 57 </html>
2.用函数嵌入访问页的计数器