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操作Access类(PHP+ODBC+Access)
Jan 02 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
MyEclipse常用配置图文教程
Sep 11 PHP
PHP生成及获取JSON文件的方法
Aug 23 PHP
PHP7扩展开发之hello word实现方法详解
Jan 15 PHP
CI框架网页缓存简单用法分析
Dec 26 PHP
实例介绍PHP中zip_open()函数用法
Feb 15 PHP
深入分析PHP设计模式
Jun 15 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
一个程序下载的管理程序(三)
2006/10/09 PHP
解析ajax事件的调用顺序
2013/06/17 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
jQuery ui 1.7更新小结
2009/08/15 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
JavaScript CSS修改学习第五章 给“上传”添加样式
2010/02/19 Javascript
克隆javascript对象的三个方法小结
2011/01/12 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
Python备份Mysql脚本
2008/08/11 Python
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
Python FFT合成波形的实例
2019/12/04 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
偷看我的初中毕业鉴定
2014/01/29 职场文书
安卓程序员求职信
2014/02/28 职场文书
财务总监岗位职责
2014/03/07 职场文书
赡养老人协议书
2014/04/21 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
修改MySQL的数据库引擎为INNODB的方法
2021/05/26 MySQL
java调用Restful接口的三种方法
2021/08/23 Java/Android