您的位置:首页 > 运维架构 > 网站架构

网站计数器的设计

2015-11-04 13:40 239 查看
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)向网页输出计数信息

<?php
/*
*
* @Authors peng--jun
* @Email   1098325951@qq.com
* @Date    2015-11-04 11:19:44
* @Link    http://www.cnblogs.com/xs-yqz/ * @version $Id$
==========================================
$max_len   计数的最大位数
$CounterFile  计数存放的文件(路径和文件名)
$counter 存放当前的计数的值
$cf  打开计数存放文件的句柄

file_exists($CounterFile) 判断文件是否存在
fopen($CounterFile,"w")  打开指定文件,若不存在,建立它
fopen($CounterFile,"r")  打开指定文件,若存在,读出文件的内容
fgets($cf,$max_length)   从文件中读出指定长度的字符
fputs($cf,"0")           把字符写入到文件中
fclose($cf)              关闭打开的文件
trim(fgets($cf,$max_len))移除字符串中的空格。换行。回车。制表符
*/
header("Content-type: text/html; charset=UTF-8");

?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页计数器</title>
</head>
<body>
<?php
//数字输出的网页计数器
$max_len = 8;
$CounterFile = "files/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>欢迎您</div>
<p>本网站的第 <?php echo $counter; //输出计数器计数?>位访客</p>
</body>
</html>


2.用函数嵌入访问页的计数器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: