计数器(图片计数器)

<?
/*设计思路:
1.创建一个文本文件,记录访客人数
2.每当有人访问页面,访客人数+1
3.格式化访客人数
4.输出访客人数
5.写文本文件*/

/*主要是文件操作和字符串操作
int fopen(string 文件名,string模式);
返回:文件指针或文件句柄
模式:r,r+
   w,w+
   a,a+ 追加方式
  
int fclose(int 文件指针);
返回:成功:1,失败:0.

string fgets(int 文件指针,int length);
返回:length-1字符串,若到文件尾,返回EOF。
*/
 //定义输出的类型为图形
 header("content-type:image/gif");

 //以读形式打开记录以往访问人数的文件zzm.txt
 $fp=fopen("count.txt","r");
 
 //从文件中读入9个字符,本计数器最大能记录的访问人数为999999999
 $str1=fgets($fp,10);
 
 //计数器加入
 $str1++;
 
 //关闭文件
 fclose($fp);
 
 //以写的方式打开记录访问人数的文件zzm.txt
 $fp=fopen("count.txt","w");
 
 //把最新的访问人数写入文件
 fputs($fp,$str1);
 
 //关闭文件
 fclose($fp);
 
 /*以下是把访问人数格式化输出,如果访问人数位数不够9位,例如5000(4位),则把访问人数变换成000005000的形式输出。方法是计算访问人数的位数,并且把它和000000000的位数(9位)比较,得到相差的位数,然后在数字前面补上相应个0。例如5000,和000000000两者的长度相差5,因此要在5000前面补上5个0。*/
 
 //计算访问人数的位数
 $len1=strlen($str1);
 
 //定义计数器最大的计数位数
 $str2="000000000";
 $len2=strlen($str2);
 
 //计算两者的位数之差,即前面要补的0的个数
 $dif=$len2-$len1;
 
 //截取要补的0
 $rest=substr($str2,0,$dif);
 
 //前面补0
 $string=$rest . $str1;
 
 //定义字号
 $font=4;
 
 //新建图象
 $im=imagecreate(120,31);
 
 //定义黑色
 $background_color=imagecolorallocate($im,0,0,0);
 
 //定义白色
 $foreground_color=imagecolorallocate($im,250,250,250);
 
 //把计数器的底色设置成黑色
 imagefill($im,0,0,$background_color);
 
 //根据字串的长度,计算字串开始写入的水平坐标,目的是尽量让字串水平对中
 //8.3为4号字的大约宽度
 $px=(imagesx($im)-8.3*strlen($string))/2;
 
 //向图象写入“My Counter”
 imagestring($im,3,$px,2,"My Counter",$foreground_color);
 
 //划一根水平线
 imageline($im,1,14,120,14,$foreground_color);
 
 //写访问人数
 imagestring($im,$font,$px,15.5,$string,$foreground_color);
 
 //把图象输出成gif格式
 imagegif($im);
 
 //释放图象
 imagedestroy($im);
 
 echo("您是第 $string 个访问者");
  
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值