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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
PHP spl_autoload_register实现自动加载研究
Dec 06 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
php使用反射插入对象示例分享
Mar 11 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
PHP正则验证Email的方法
Jun 15 PHP
php计算税后工资的方法
Jul 28 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 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
用PHP动态创建Flash动画
2006/10/09 PHP
php实现对象克隆的方法
2015/06/20 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
javascript判断office版本示例
2014/04/11 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python学习之matplotlib绘制散点图实例
2017/12/09 Python
python实现顺时针打印矩阵
2019/03/02 Python
python3实现表白神器
2019/04/09 Python
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
Linux中如何用命令创建目录
2015/01/12 面试题
毕业生大学生活自我总结
2014/01/31 职场文书
会计自我鉴定
2014/02/04 职场文书
医院总经理岗位职责
2014/02/04 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
婚礼新人答谢词
2015/01/04 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
会议室管理制度范本
2015/08/06 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS