http://base.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=QQ号码
返回的数据为:
portraitCallBack({“553643941″:["http://qlogo2.store.qq.com/qzone/553643941/553643941/100",11986,-1,0,0,0," ′ 悲歌",0]})
返回字符串包含了你的QQ号码,QQ头像链接,QQ呢称。。 接下来及简单了,代码如下:createImage.php
/**
* @author Sakmon
* 本文来源http://blog.sakmon.com/ 转载需声明。
**/
header('Content-Type: image/jpeg');//定义格式
$referer = $_SERVER['HTTP_REFERER'];
//获取QQ号码
$pattern = "/http:\/\/user.qzone.qq.com\/(\d+)\/infocenter/";
if(preg_match($pattern, $referer, $matches))
$qqnum = (int)$matches[1];
if(!$qqnum)$qqnum =553643941;//获取QQ号码错误,默认为553643941
$qqstr = file_get_contents("http://base.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins={$qqnum}",1);//获取JSON数据
$json = mb_substr(trim($qqstr),17,-1,"utf-8"); //截取指定内容
$jsonstr = json_decode($json,true); //转换成PHP变量
$keys = array_keys($jsonstr); //返回所有键名
$qq = $keys[0]; //取得第一个键名 553643941
$nick =trim($jsonstr[$qq][6]); //取值 悲歌
$avatar =trim($jsonstr[$qq][0]); //取值头像地址
$imgWidth = 600;$imgHeight = 400;
$img = imagecreatetruecolor($imgWidth, $imgHeight); //创建图像
imagefill($img, 0, 0, imagecolorallocate($img, 240, 240, 240));//设置底色
$snowflake_size = 30; $font_file = "simhei.ttf";
ob_start();
readfile($avatar);
$data=ob_get_contents();
ob_clean();
$im2 = imagecreatefromstring($data); //水印文字 , 把头像合成到底图中
$black_color = imagecolorallocate($img, 0, 0, 0);
imagettftext($img, 12, 0, $imgWidth -550 , $imgHeight - 350,$black_color, $font_file, '你的QQ号码:'.$qq );
imagettftext($img, 12, 0, $imgWidth -550 , $imgHeight - 250,$black_color, $font_file, '你的QQ昵称:'.$nick);
imagettftext($img, 12, 0, $imgWidth -100 , $imgHeight - 20,$black_color, $font_file, 'By ′ 悲歌');
imagecopy($img, $im2, $imgWidth -550 , $imgHeight - 200, 0, 0, 100,100);
imagejpeg($img);
imagedestroy($img);
然后把你代码传到服务器上去,运行一下,看看是不是你默认的QQ号图像,然后在QQ空间中发表日志,插入图像,把链接地址设置为你的php文件地址既可,这样好友在他个人中心中看到图像就是显示好友他本身的信息了。 是不是觉得很简单呢~~