PHP中动态显示签名和ip原理


Posted in PHP onMarch 28, 2007

<?php 
//包含一个计数器,一个提醒语句,用户ip以及自己的广告图片。
//给浏览器发送头,说我是张图片
Header("Content-type: image/PNG");
//这里定义计数器,放到一个文件里的
$Visited=array();
if (!file_exists("Counter"))
{
for($i=0;$i<24;$i++)
$Visited[$i]=0;
$str=$Visited[0];
for($i=1;$i<24;$i++)
$str.=",$Visited[$i]";
$fp=fopen("Counter","w"); 
fputs($fp,$str);
fclose($fp);
}
else
{
$fp=fopen("Counter","r"); 
$str=trim(fgets($fp,100));
$Visited=explode(",",$str);
fclose($fp);
}
$Visited[date("G")]=intval($Visited[date("G")])+1;
$str=$Visited[0];
$max=intval($Visited[0]);
for($i=1;$i<24;$i++)
{
$str.=",$Visited[$i]";
if($max<=intval($Visited[$i]))
$max=intval($Visited[$i]);
}
$fp=fopen("Counter","w");
fputs($fp,$str);
fclose($fp);
$sum=0;
for($i=0;$i<24;$i++)
{
$sum+=$Visited[$i];
}
//计数器结束
//开始创建图片定义颜色字体等 
$im = imagecreate(400,100); 
$black = ImageColorAllocate($im, 0,0,0); 
$white = ImageColorAllocate($im, 255,255,255); 
$red = ImageColorAllocate($im, 255,0,0); 
$blue = ImageColorAllocate($im, 0,0,255); 
$font=5; 
$maginx=20;
$maginy=20;
//定义ip和主机名,当然是用户端的
$ip = getenv('REMOTE_ADDR');
$host = gethostbyaddr($ip);
$today = getdate(); 
$wday = $today['wday']; 
//提醒片断,是周末则好不是周末则提醒上课
if($wday==6 || $wday==0){
 $tips = "enjoy the wonderful weekend!";
}else{
 $tips = "you'd better go to school.";
}
if($wday ==1){
 $wday = "Monday";
} elseif ($wday==2){
 $wday="Tuesday";
} elseif ($wday==3){
 $wday="Wednsday";
} elseif ($wday==4){
 $wday="Thursday";
} elseif ($wday==5){
 $wday="Friday";
} elseif ($wday==6){
 $wday="Saturday";
} elseif ($wday==0){
 $wday="Sunday";
}
//开始创建图像背景边框
imagefill($im,0,0,$black);
imagefilledrectangle ($im, 1, 1, 398, 98, $white);
//定义画笔
$style = array ($white,$white,$white,$white,$white,$white,$white,$white,$white,$red);
imagesetstyle ($im, $style);
//有个运动效果就用笔刷来刷了,相当于photoshop中的画笔工具也
//ads是我自己的广告图
$brush = imagecreatefrompng ("http://172.24.16.80/testpic/smile1.png");
$brush1 = imagecreatefrompng ("http://172.24.16.80/testpic/ads.png");
$w2 = imagecolorallocate($brush,255,255,255);
imagecolortransparent ($brush, $w2);
imagesetbrush ($im, $brush);
imageline ($im, 350,20,360,20, IMG_COLOR_STYLEDBRUSHED);
imagecopy ($im, $brush1, 270, 40, 0, 0, 119, 48);

//定义输出文字 
imagestring($im,$font,$maginx,$maginy+20,"Your computer's named:{$host}",$red);
imagestring($im,$font,$maginx,$maginy,"Your IP Address is:{$ip}",$red);
imagestring($im,2,2,2,"Today is {$wday} and {$tips}",$blue);
imagestring($im,3,10,$maginy+40,"TotalRefreshTimesFromToday:$sum",$blue);

//图片结尾必然语句
ImagePNG($im); 
ImageDestroy($im); 
?>

PHP 相关文章推荐
php HandlerSocket的使用
May 02 PHP
php设计模式之单例、多例设计模式的应用分析
Jun 30 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
php函数连续调用实例分析
Jul 30 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
php字符串操作常见问题小结
Oct 11 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
PHP培训要多少钱
Jun 06 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
Jun 29 PHP
php实现获取近几日、月时间示例
Jul 06 PHP
php更新cookie内容的详细方法
Sep 30 PHP
收集的PHP中与数组相关的函数
Mar 22 #PHP
用PHP写的MySQL数据库用户认证系统代码
Mar 22 #PHP
人尽可用的Windows技巧小贴士之下篇
Mar 22 #PHP
加速XP搜索功能堪比vista
Mar 22 #PHP
dedecms中常见问题修改方法总结
Mar 21 #PHP
dedecms后台验证码总提示错误的解决方法
Mar 21 #PHP
dedecms中显示数字验证码的修改方法
Mar 21 #PHP
You might like
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
php 文件状态缓存带来的问题
2008/12/14 PHP
php使用websocket示例详解
2014/03/12 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
YII框架模块化处理操作示例
2019/04/26 PHP
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
微信小程序 自定义消息提示框
2017/08/06 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
[14:50]2018DOTA2亚洲邀请赛开幕式
2018/04/03 DOTA
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
python实现字符串和日期相互转换的方法
2015/05/13 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
django基础学习之send_mail功能
2019/08/07 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
绘画专业自荐信范文
2014/02/23 职场文书
党课培训主持词
2014/04/01 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
nginx结合openssl实现https的方法
2021/07/25 Servers
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL