网站计数器的设计方法很多,应用不同方法设计的计数器的实效性也不尽相同。在设计计数器中应用到的一些关键技术。
1.通过Session防止重复计数
此方法可以应用到任意一个计数器中实现控制重复计数的功能。其实现的原理是:在当前页被访问时,初始化一个Session变量,并赋给其一个空值。
然后,判断Session变量的值是否为空,如果为空,则将计数器的值增加1,并且为Session变量赋值为1。
此时,在当前页中,Session变量的值已经不为空,无论如何刷新,Session变量的值都不会改变,所以计数器的值也不会增加。关键代码如下:
if(!isset($_SESSION)){ session_start(); } //初始化SESSION变量
$f_open = fopen("./count.txt","r+"); //打开指定的文件
$count = fgets($f_open); //读取文件中的数据
if($_SESSION[temp]==""){ //判断$_SESSION[temp]==""的值是否为空
$count = $count + 1; //将变量$count的值加1
rewind($f_open); //打开指定的文件
fwrite($f_open,$count); //向文件中写入新的数据
fclose($f_open); //关闭文本文件
$_SESSION[temp]=1; //$_SESSION[temp]的值不为空,给$_SESSION[temp]赋一个值1
}
?>
Session变量防止重复计数的缺点是只对当前页面有效,当重新打开该页面时,计数器的值仍然会增加。
(1)fopen()函数,打开某文件,并返回该文件的标识指针。语法如下:
resource fopen(string filename, string mode [, int use_include_path [, resource context]])
// 在fopen()函数的mode参数中,其指定的打开模式很多,其中常用的有如下几种。
// \'r\'只读方式打开,将文件指针指向文件头。
// \'r+\'读写方式打开,将文件指针指向文件头。
// \'w\'写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建。
// \'w+\'读写方式打开,将文件指针指向文件头并