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 相关文章推荐
下载文件的点击数回填
Oct 09 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
Nov 22 PHP
thinkphp普通查询与表达式查询实例分析
Nov 24 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
PHP安装memcached扩展笔记
May 28 PHP
PHP连接MYSQL数据库实例代码
Jan 20 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
分享PHP-pcntl 实现多进程代码
Sep 30 PHP
yii2项目实战之restful api授权验证详解
May 20 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 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
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
js控制frameSet示例
2013/09/10 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
Delphi笔试题
2016/11/14 面试题
2014年医务科工作总结
2014/12/18 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang