用PHP制作动态计数器

  PHP是现在流行的服务器端脚本语言,它的功能非常强大,你可以利用它做几乎任何事。不需要复杂的变量和代码,你就可以非常迅速地做出漂亮的计数器来。下面,就让我们一步一步的来做。
  其实,计数器的原理大家都知道,首先,确定一个记录文件,例如counter.txt或counter.log,每一次访问这个页面,就对这个文件加1,然后把结果显示出来。
  因此,我们的PHP代码开始应该是这样的:
  <?PHP
  $countfile="js/counter.inf";
  //定义计数器写入的文件是当前目录下JS目录中//counter.inf,然后我们应当测试该文件能否打开
  if(($fp=fopen($countfile,"r+"))==false){//用读写模式打开文件,若不能打开就退出
  printf("Open file%s failed!",$countfile);
  exit;
  }
  else
  {
  //如果文件能够正常打开,就读入文件中的数据,假设是1
  $count=fread($fp,10);
  //读取10位数据
  $count=$count+1;
  //count++
  fclose($fp);
  //关闭当前文件
  $fp=fopen($countfile,"w+")
  //以覆盖模式打开文件
  fwrite($fp,$count);
  //写入加1后的新数据
  fclose($fp);
  //并关闭文件
  }
  这时,整个计数工作就完成了,如果只是简单的文字计数的话,在这里就可以输出变量$count的值。下面是将$count转换为图片模式的代码:
  $fp=fopen($countfile,"r");//以只读模式打开文件
  $array_count=1;//定义一个表示数组元素位置的变量,下面要用
  while(!feof($fp)){
  $current_number=fgetc($fp);
  $counter_array[$array_count]=$current_number;
  $array_elements=count($counter_array);
  $array_count=$array_count+1;
  }
  上面这个while循环的作用是把每一位数分离出来。它从counter.inf中由左到右逐位读取数值,并依次写入一个叫counter_array的数组中,这个数组的索引是从1开始的($array_count)。如果现在counter.inf中的数字是158,那么数组$counter_array[]就像这样:$counter_array[1]=1、$counter_array[2]=5、$counter_array[3]=8。有了上面这些工作,我们就可以方便地显示不同的数字图片了,显示代码如下:
  echo("<table border=\"0\"height=\"5\"align=\"center\"><tr><td bgcolor=\"#bab389\"align=\"center\">欢迎您,第");
  for($array_id=1;$array_id<$array_elements;++$array_id){
  echo("<img src=\"images\\counter\\$counter_array[$array_id].gif\"align=absmiddle>");
  }
  echo("位客人</td></tr></table>");
  }
  上面的代码很简单,就是画一个表格,并依次在表格中显示所需的图片。在\images\counter目录下有0.gif至9.gif十张图片,for循环遍历数组,从高位到低位给出每一位数相应的图片,直到数组的尾部。这样,一个完整的计数器就完成了。