网站计数器的设计
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)向网页输出计数信息
2.用函数嵌入访问页的计数器
网页计数器不单独作为页面,而是嵌入在访问的页面中,当用户访问该网页的时候,把网页的访问累计数加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.用函数嵌入访问页的计数器
相关文章推荐
- Android项目重构之路:架构篇
- .net大型分布式电子商务架构说明(转载来自<头条>)
- NFS+Heartbeat+DRBD 架构部署(NFS高可用)
- 织梦DEDECMS网站后台系统菜单点击没有反应的解决办法(除了核心)
- keepalived + haproxy 实现web 双主模型的高可用负载均衡--转
- php实现网站留言板功能
- 网站写异常日志
- smarty模板引擎总结六配置网站title,keywords,description
- 网狐棋牌游戏平台服务器架构设计分析
- PC端搭建简单地网站教程
- 浅析.NET逻辑分层架构
- .net 分布式架构之任务调度平台
- 各大招聘网站信息实时查询浏览【二】
- 浅析.NET逻辑分层架构
- php实现网站留言板功能
- 使网站显得业余的10个错误
- 大型网站技术架构--高可用性
- 云存储基础架构剖析
- php网站开发学习平台
- 后盾网php网站开发培训