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 相关文章推荐
第4章 数据处理-php字符串的处理-郑阿奇(续)
Jul 04 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
PHP empty函数报错解决办法
Mar 06 PHP
php数组去除空值函数分享
Feb 02 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
php中 $$str 中 &quot;$$&quot; 的详解
Jul 06 PHP
php实现json编码的方法
Jul 30 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
PHP匿名函数(闭包函数)详解
Mar 22 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中实现crontab代码分享
2015/03/26 PHP
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
第六篇Bootstrap表格样式介绍
2016/06/21 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
python运行其他程序的实现方法
2017/07/14 Python
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
python实现猜数字小游戏
2020/03/24 Python
python 标准差计算的实现(std)
2019/07/29 Python
python的等深分箱实例
2019/11/22 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
廉政承诺书
2015/01/19 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
招商银行收入证明
2015/06/17 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书