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 相关文章推荐
第十四节--命名空间
Nov 16 PHP
PHP中全面阻止SQL注入式攻击分析小结
Jan 30 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
php生成数字字母的验证码图片
Jul 14 PHP
PHP编程中尝试程序并发的几种方式总结
Mar 21 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 PHP
PHP基于单例模式编写PDO类的方法
Sep 13 PHP
PHP面向对象多态性实现方法简单示例
Sep 27 PHP
Laravel框架实现超简单的分页效果示例
Feb 08 PHP
PHP获取学生成绩的方法
Nov 17 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中uploaded_files函数使用方法详解
2011/03/09 PHP
PHP测试程序运行时间的类
2012/02/05 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
python处理文本文件实现生成指定格式文件的方法
2014/07/31 Python
Python爬取读者并制作成PDF
2015/03/10 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
python装饰器的特性原理详解
2019/12/25 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
《小猪家的桃花树》教学反思
2014/04/11 职场文书
社区助残日活动总结
2014/08/29 职场文书
个人廉洁自律总结
2015/03/06 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
2016年记者节感言
2015/12/08 职场文书
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技