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 相关文章推荐
MYSQL环境变量设置方法
Jan 15 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
ThinkPHP中的关联模型注意点
Jun 16 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 PHP
PHP7之Mongodb API使用详解
Dec 26 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 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 代码规范小结
2012/03/08 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
vue计算属性get和set用法示例
2019/02/08 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
2019/09/02 Javascript
python实现将内容分行输出
2015/11/05 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
python、Matlab求定积分的实现
2019/11/20 Python
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
冰淇淋店创业计划书范文
2013/12/27 职场文书
中青班党性分析材料
2014/02/16 职场文书
材料员岗位职责
2014/03/13 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
解决Go gorm踩过的坑
2021/04/30 Golang
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL