- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
案例 网页计数器设计
一、概述
网页计数器是用来统计网站的访问次数并把结果公布在访问的网页上的。它是让Web访问者和网页管理者获知网页(站)的人气指数的最直接地方法。
网上有很多免费资源都提供网页计数器的代码,只要把它嵌入到网页恰当的地方即可。
网页计数器即可以采用文件来保存访问计数,也可以用数据库实现。一般地,若只是对一个网页(如首页)计数,则采用文件保存计数的方法,若对网站上多个网页进行访问计数,则采用数据库方法。
二、系统架构
网页计数器不单独作为页面,而是嵌入在访问页面中,当有用户访问该网页时,把网页的访问累计数加1(也可以加10,以迷惑访问者),然后把计数显示在访问的网页中。
工作流程图如图1所示:
文件
文件
++
服务器
用户1
用户2
请求浏览
请求浏览
12345
12346
读数据
写数据
图1
说明:
1.用户向服务器发出访问请求;
2.服务器读取该访问浏览次数的计数,加1后,向客户端返回浏览次数;
3.服务器保存新的浏览次数;
4.有新的用户要访问,则重复以上三步。
计数保存在文件或数据库中,计数的过程是向文件(数据库)读写数据的过程,计数在页面的显示方式有两种:文本方式或图片方式。
三、解决方案
主要算法:
1)数据文件:counter.dat(可以不准备,在检查文件不存在时再建立)
2)读出数据文件counter.dat中数据的算法
打开文件;
若不存在,则创建它,并以0为初始数据;
否则,读出数据
关闭文件。
3)把累加后的数据写入数据文件counter.dat
累计数据;
打开文件;
写入数据
关闭文件。
4)向网页输出数据
1.文本输出的网页计数器
a.简易页面计数器
代码文件:al_jsj_text.php
代码解读
html
html
head
title文本输出网页计数器/title
meta http-equiv=Content-Type content=text/html; charset=gb2312
/head
body
?
//数字输出的网页计数器
$max_len=8;
$CounterFile=counter.dat;
//如果计数器文件不存在的处理
if(!file_exists($CounterFile))
{
$counter=0;
//打开一个文件,在此先建立该文件
$cf=fopen($CounterFile,w);
$cf=fopen($CounterFile,w);
//初始化计数器文件
fputs($cf,0);
//关闭文件
fclose($cf);
}
else
{
//取回当前计数器的计数
$cf=fopen($CounterFile,r);
$counter=trim(fgets($cf,$max_len));
fclose($cf);
}
//把计数器计数自增1
$counter++;
//写入新的计数
$cf=fopen($CounterFile,w);
fputs($cf,$counter);
fclose($cf);
//输出计数器计数
echo 您是本网页第.$counter.位访客!
?
/body
/html
--al_jsj_text.php--
代码中包含的自定义变量及其含义如下表所示。
变量
含义
$max_len
计数的最大位数
$CounterFile
计数存放的文件(路径和文件名)
$counter
存放当前计数的值
$cf
打开计数存放文件的句柄
代码中包含的文件操作如下表所示。
函数名
含义
file_exists($CounterFile)
判断文件是否存在
fopen($CounterFile,w)
打开指定的文件,若不存在,建立它
fopen($CounterFile,r)
打开指定的文件,若存在,读出文件的内容
fputs($cf,0)
把字符写入文件
fclose($cf)
关闭打开的文件
b.用函数嵌入访问页的计数器
代码文件:al_jsj_fun.php、counter.inc
代码解读
counter.inc封装了计数器的函数
?
?
function counter(){
global $PHP_SELF;
$max_len=8;
$CounterFile=./counter/.$PHP_SELF..dat;
if(!file_exists($CounterFile))
{
//如果目录不存在,先建立目录;
if(!file_exists(dirname($CounterFile)))
{
mkdir(dirname($CounterFile),0777);
}
//建立并初
文档评论(0)