蓝信子 发表于 2008-12-24 11:59:04

一个自定义位数的多用户计数器

  此计数器能够自定义任意位数,而且在免费提供的时候能够显示一个简单的广告。
  运行的时候需要在计数器目录下创建一个nobody帐户有权改写的目录datas.
  实际运行的例子在
  http://www.hnpts.ha.cn/freecount.htm
  <?
  Header("Content-type: image/png");
  if ($user=="") $user="test";
  $fn="datas/".$user.".txt";
  if ($bit=="") $bit=8;  //取默认值
  if (is_readable($fn)) {$f=fopen($fn,"r");
  $c=fgets($f,255);fclose($f);} //读出原来的计数值
  else $c="0"; //新用户
  $l=strlen($c); //计算实际值长度
  $cnt="";
  for ($i=0;$i<$bit-$l;$i) $cnt.="0";//前面加“0”补足指定的位数
  $cnt.=$c;$c1=intval($c);$c1;
  $f=fopen($fn,"w");fputs($f,$c1);fclose($f); //写回
  $font=20;
  if (($c1==9)&&($user!="test")) {$cnt="www.hnpts.ha.cn";$font=16;}
  //达到条件就显示广告
  $s=ImageTTFBBox($font,0,"times.ttf", $cnt);
  $x=abs($s) 8;$y=abs($s) 7;
  $im = imagecreate($x,$y);
  $black = ImageColorAllocate($im, 0,0,0);
  $white = ImageColorAllocate($im, 255,255,255);
  if ($font==20) {$green = ImageColorAllocate($im, 0,255,0);
  imagerectangle($im,1,1,$x-2,$y-2,$white);}
  else $green = ImageColorAllocate($im, 255,255,255);
  ImageTTFText($im,$font,0, 3,$y-5, $green, "times.ttf", $cnt);
  ImagePng($im);
  ImageDestroy($im);
  
  ?>
   <
页: [1]
查看完整版本: 一个自定义位数的多用户计数器