利用php

编程入门 行业动态 更新时间:2024-10-25 03:32:02

利用<a href=https://www.elefans.com/category/jswz/34/1770834.html style=php"/>

利用php

imagick是专门设计给php用的模块,虽说不如直接在命令行的效率高,但据说效率上比

gd2要快,并且可以做很多高级的操作,支持100+的图像类型,非常之强大,这里仅用它来显

示IP及来源,也就是往图片上“写字”,可以说是大材小用了。ip数据库请自行查找配置,只

要会点php应该就很容易改。如果不想显示ip的来源,只要把源码中的相应部分注释掉即可:

/*如果不显IP来源,注释开始

*/

……………………


/*如果不显IP来源,注释结束*/

 

关于使用,这里也提一下吧,多数的论坛程序提供UBB的签名方式:[img]http://x.x.x.x/sign.php[/img]就行了!

 

//连接数据库,这里用的是discuz!的数据库类 

//config.inc.php中存储了数据库的相关配置 

/*如果不显IP来源,注释开始*/

include './config.inc.php'; 

include './db_mysql.class.php'; 

$db = new dbstuff; 

$db->connect($dbhost, $dbuser, $dbpasswd, $dbname, 0, TRUE, $dbcharset); 

//数据库的名字叫signpic,其中存了ip数据库 

$db->select_db('signpic'); 

/*如果不显IP来源,注释结束*/

//字体文件的路径,我用的是微软雅黑 

$font="./MSYHBD.TTF"; 

//用来当做背景的图片 

$imgpath = 'chuanglian.png'; 

//图片上显示的文字 

$word = '我就是显示IP而已,没有别的意思~'; 

//文字大小 

$fontsize = 20; 

//文字颜色,这个根据你的图片而定,不然看不到字了 

$color = "black"; 

/*如果不显IP来源,注释开始*/

//获取用户的IP地址  

$ip = $_SERVER['REMOTE_ADDR']; 

//将IP地址转化为十进制,便于进入数据库查询 

$iparray=explode('.',$ip); 

$ipint=($iparray[0] * 256*256*256) + ($iparray[1]*256*256) + ($iparray[2]*256) +

$iparray[3]; 

//查数据库,得到IP的来源存在$from变量中 

$sql = "select province, city, subcity from sp_ipaddress where $ipint>start and

$ipintfetch_first($sql); 

/*如果不显IP来源,注释结束*/

if($row=="") 

    $from = "来源未知"; 

}else

//这是查出来的三个项,省,城市,县——这个根据你的IP数据库的情况自己确定 

    $from = $row['province'].'.'.$row['city'].'.'.$row['subcity']; 

//读取用户是什么浏览器 

$useragent = $_SERVER["HTTP_USER_AGENT"]; 

//只识别两种MSIE和FirFox 

if(stripos($useragent,"firefox")){ 

    $browser="FirFox"; 

}elseif(stripos($useragent,"MSIE")){ 

    $browser="MSIE"; 

//生成显示文字,包含IP,来源和加的话 

$text = "你的IP: $ip 浏览器: $browser/n来自: $from/n".$word; 

//读入背景图片 

$image = new Imagick( $imgpath  ); 

$image->setImageFormat( "png" ); 

//生成画笔 

$draw = new ImagickDraw(); 

//设置对齐方式,这里是居中对齐 

$draw->setGravity( Imagick::GRAVITY_CENTER ); 

//设置字体 

$draw->setFont( $font ); 

//设置字体大小 

$draw->setFontSize( $fontsize ); 

//设置文字颜色 

$textColor = new ImagickPixel( $color ); 

$draw->setFillColor( $textColor ); 

//往图片上写文字 

$image->annotateImage( $draw, 0, 0, 0, $text ); 

//输出最后的结果 

//header来表明MIME 

header( "Content-Type: image/png" ); 

echo $image;

更多推荐

利用php

本文发布于:2024-03-08 15:11:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1721231.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:php

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!