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,不用COM,生成excel文件
Oct 09 PHP
模仿OSO的论坛(一)
Oct 09 PHP
php $_ENV为空的原因分析
Jun 01 PHP
PHP备份数据库生成SQL文件并下载的函数代码
Feb 05 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
Sep 28 PHP
10 个经典PHP函数
Oct 17 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
PHP中预定义的6种接口介绍
May 12 PHP
php中session定期自动清理的方法
Nov 12 PHP
PHP+ajax分页实例简析
Dec 07 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
Aug 07 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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
功能强大的php文件上传类
2016/08/29 PHP
php写app用的框架整理
2019/09/29 PHP
Javascript实现的分页函数
2007/02/07 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
uploadify 3.0 详细使用说明
2012/06/18 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
跟老齐学Python之用Python计算
2014/09/12 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
python多进程重复加载的解决方式
2019/12/13 Python
Python requests接口测试实现代码
2020/09/08 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
测试时代收集的软件测试面试题
2013/09/25 面试题
英语系毕业生自荐信
2013/10/31 职场文书
大学生自荐书范文
2013/12/10 职场文书
简短证婚人证婚词
2014/01/09 职场文书
年度考核自我评价
2014/01/25 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
火烧圆明园观后感
2015/06/03 职场文书
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android