PHP中动态显示签名和ip原理

 更新时间:2007年03月28日 00:00:00   作者:  
<?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-FPM运行状态的实时查看及监控详解

    PHP-FPM运行状态的实时查看及监控详解

    php-fpm和nginx一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。这篇文章就给大家详细介绍了PHP-FPM运行状态的实时查看及监控,有需要的朋友们可以参考学习,感兴趣的朋友们下面来一起看看吧。
    2016-11-11
  • PHP5 的对象赋值机制介绍

    PHP5 的对象赋值机制介绍

    看到PHP设计模式中值对象模式中的例题,对于结果总感到有点疑惑。回头看了下PHP5的对象赋值才真正清楚。
    2011-08-08
  • 什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释

    什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释

    这篇文章主要介绍了什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释,本文用简洁的语言解释了 它们的不同之处,需要的朋友可以参考下
    2015-07-07
  • php使用CURL伪造IP和来源实例详解

    php使用CURL伪造IP和来源实例详解

    这篇文章主要介绍了php使用CURL伪造IP和来源的方法,以实例形式详细分析了CURL伪造IP和来源的原理与实现技巧,并补充说明了PHP中的CURL函数库常用函数,需要的朋友可以参考下
    2015-01-01
  • PHP生成随机码的思路与方法实例探索

    PHP生成随机码的思路与方法实例探索

    这篇文章主要介绍了PHP生成随机码的思路与方法,结合实例形式分析了php生成随机字符串的常见思路与相关操作技巧,需要的朋友可以参考下
    2019-04-04
  • ThinkPHP与PHPExcel冲突解决方法

    ThinkPHP与PHPExcel冲突解决方法

    最近一个项目需要批量导入Excel数据,要用到PHP读取Excel中的内容然后导入到数据库。
    2011-08-08
  • PHP命名空间namespace及use的简单用法分析

    PHP命名空间namespace及use的简单用法分析

    这篇文章主要介绍了PHP命名空间namespace及use的简单用法,结合实例形式分析了php命名空间的功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-08-08
  • apache配置虚拟主机的方法详解

    apache配置虚拟主机的方法详解

    本篇文章是对apache配置虚拟主机的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 浅析php插件 HTMLPurifier HTML解析器

    浅析php插件 HTMLPurifier HTML解析器

    本篇文章是对php插件 HTMLPurifier HTML解析器进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • php正则表达匹配中文问题分析小结

    php正则表达匹配中文问题分析小结

    本文章分析了在php中正则表达式对中文的支持问题,一般情况下我们可会能简单利用我上面的正则来验证中文,后面我分析了关于兼容gb2312,utf-8和表达式 ^[\\x7f-\\xff]+$ 可以完全搞定中文不兼容的问题
    2012-03-03

最新评论