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安全配置
Oct 09 PHP
文章推荐系统(三)
Oct 09 PHP
c#中的实现php中的preg_replace
Dec 21 PHP
php.ini save_handler 修改不生效的解决办法
Jul 22 PHP
php常量详细解析
Oct 27 PHP
yii分页组件用法实例分析
Dec 28 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
PHP实现的服务器一致性hash分布算法示例
Aug 09 PHP
PHP从尾到头打印链表实例讲解
Sep 27 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 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怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
python如何读写csv数据
2018/03/21 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
使用Python实现画一个中国地图
2019/11/23 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
如何进行Linux分区优化
2016/09/13 面试题
大学生护理专业自荐信
2013/10/03 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS