zoukankan      html  css  js  c++  java
  • 网站计数器的设计

    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.用函数嵌入访问页的计数器

  • 相关阅读:
    快速排序(详解)
    14.linux-platform机制实现驱动层分离(详解)
    13.Linux键盘按键驱动 (详解)
    Linux-hexdump命令调试event驱动—详解(13)
    Android开发final的用法
    Android控件RecyclerView的基本用法
    搜索关键词分析——以个人博客网站为例
    java.net.SocketException: Software caused connection abort: socket write error
    Android layout属性大全
    java中 label 配合 break continue 使用方法
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/4935743.html
Copyright © 2011-2022 走看看