php获取qq用户昵称和在线状态实例

 QQ通过返回不同的图片,来表示在线或离线,图标也随之变换

既然图片不同,那么,返回的HTTP头信息中的Content-Length 也一定不同,而且,彩色图片一定会比同样子的暗色图片要大,于是,找出某个样式的彩色与暗色图片的中间值,就能达到通过判断头部返回长度的方法来获取QQ在线状态

以下是代码

代码如下

<?php

function get_qq_status($uin)
{
error_reporting(0);
$f=file_get_contents('http://wpa.qq.com/pa?p=1:'.$uin.':4');
if(!$f) return(true);
foreach($http_response_header as $val)
{
if(strpos($val,'Content-Length')!==false)
{
return(intval(substr($val,16,50))>1000);
}
}
}

?>

 

上面比较简单,下面来个更好的

代码如下

<?
function tphp_qq_online( $uin )
{
$reques = "GET /pa?p=1:".$uin.":1 HTTP/1.1rn";
$reques .= "Host: wpa.qq.comrn";
$reques .= "User-Agent: PHP_QQ_SPYrnrn";

if ( !( $socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP ) ) ) return(-1);
if ( !( socket_connect( $socket, "wpa.qq.com", 80 ) ) ) return(-1);
if ( !( socket_write( $socket, $reques ) ) ) return(-1);
if ( !( $respon = socket_read( $socket, 1024, PHP_BINARY_READ ) ) ) return(-1);;
socket_close( $socket );

$field = explode( "rn", $respon ); 
for ( $i=0; $i<count($field); $i++ ) {
if ( strncasecmp($field[$i], "Location:", 9) == 0 ) {
if ( strpos( $field[$i], "online") ) {
$ret = 1;
} else if ( strpos( $field[$i], "offline") ) {
$ret = 0;
} else { 
$ret = -1;
} // if
break;
} // if
} // for

return( $ret );
}
/* }}} */

 

echo tphp_qq_online( 561272831 );

?>

 

例,qq用户昵称和在线状态

代码如下

//获取QQ状态
function getQQState($qq){
$url ='http://wpa.qq.com/pa?p=2:'.$qq.':41&r=' . time ();
$headInfo = get_headers($url,1);
$length = $headInfo['Content-Length'];
if ($length==1243) {
return true;
}else {
return false;
}
}
//获取QQ昵称
function getQQNick($qq){
$str = file_get_contents('http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin='.$qq);
$pattern = '/'.preg_quote('"nickname":"','/').'(.*?)'.preg_quote('",','/').'/i';
preg_match ( $pattern,$str, $result );
return $result[1];
}
//获取QQ姓名
function getQQName($qq){
//$qqArr = include 'friendArr.php';//预先设置的
//$username = $qqArr[$qq];
if (!$username) {
$username = getQQNick($qq);
}
return $username;
}

时间: 2024-11-02 10:47:01

php获取qq用户昵称和在线状态实例的相关文章

php获取qq用户昵称和在线状态(实例分析)_php实例

QQ通过返回不同的图片,来表示在线或离线,图标也随之变换,既然图片不同,那么,返回的HTTP头信息中的Content-Length 也一定不同,而且,彩色图片一定会比同样子的暗色图片要大,于是,找出某个样式的彩色与暗色图片的中间值,就能达到通过判断头部返回长度的方法来获取QQ在线状态以下是代码 复制代码 代码如下: <?phpfunction get_qq_status($uin){ error_reporting(0); $f=file_get_contents('http://wpa.qq.

qq用户信息-怎么样获取QQ用户信息

问题描述 怎么样获取QQ用户信息 请问各位大神,怎么样才能从后台获取到当前QQ用户的信息呢,QQ用户已经登录了,也不用授权,请问哪位知道,帮帮我啊 解决方案 在获取sso授权成功后(这是能获取用户信息的前提,没获取成功的就sorry啦). 需要用到UserInfo的实例: UserInfo mInfo; mInfo.getUserInfo(new BaseUiListener(this,"get_simple_userinfo")); 在OpenAPI的回调中处理消息就可以了. 能获取

通过MSXML2自动获取QQ个人头像及在线情况(给初学者)

xml|初学|在线 不知道大家对MSXML2.XMLHTTP是不是很熟悉,不过它的功能可以说是达到了极点.你可以通过它把别人的网站都"搬回来",呵呵,吹牛啦!!今天我就用它从腾讯网站获取一个QQ号码的头像,在线情况(人家隐身了我也没办法).当然大家也可以获取QQ的昵称,所在地等.具体实现方法如下:先建立两个函数,用来处理一个URL<%function getHTTPPage(url)dim httpset http=createobject("MSXML2.XMLHTT

通过MSXML2自动获取QQ个人头像及在线情况(给初学者)_应用技巧

不知道大家对MSXML2.XMLHTTP是不是很熟悉,不过它的功能可以说是达到了极点.你可以通过它把别人的网站都"搬回来",呵呵,吹牛啦!! 今天我就用它从腾讯网站获取一个QQ号码的头像,在线情况(人家隐身了我也没办法).当然大家也可以获取QQ的昵称,所在地等.具体实现方法如下: 先建立两个函数,用来处理一个URL 复制代码 代码如下: <%  function getHTTPPage(url)  dim http  set http=createobject("MSX

通过MSXML2自动获取QQ个人头像及在线情况(给初学者)_javascript技巧

不知道大家对MSXML2.XMLHTTP是不是很熟悉,不过它的功能可以说是达到了极点.你可以通过它把别人的网站都"搬回来",呵呵,吹牛啦!! 今天我就用它从腾讯网站获取一个QQ号码的头像,在线情况(人家隐身了我也没办法).当然大家也可以获取QQ的昵称,所在地等.具体实现方法如下: 先建立两个函数,用来处理一个URL 复制代码 代码如下: <%  function getHTTPPage(url)  dim http  set http=createobject("MSX

php实现QQ空间获取当前用户的用户名并生成图片_php技巧

本文实例讲述了php实现QQ空间获取当前用户的用户名并生成图片的方法.分享给大家供大家参考.具体如下: 最近发现空间里经常会转载一些含有当前用户昵称和qq号的图片,很好奇,研究了一下原理 原理很简单,图片是利用php生成的,好吧,直接上代码 图片源代码: <?php $ment = $_SERVER["HTTP_REFERER"]; if($ment == 'http://cnc.qzs.qq.com/qzone/newblog/v5/editor.html'){ header(

微信开发之网页授权获取用户信息(二)_php实例

在公众号的配置过程中,许多开发者会在菜单中加入HTML5页面,有时在页面内需要访问页面的用户信息,此时就需要网页授权获取用户基本信息 提醒大家:本文介绍讲述的内容是基于yii2.0框架 1.设置授权回调域名:开发 ---> 接口权限 找到"网页授权获取用户基本信息",点击后面对应的"修改",在弹框响应位置填写授权回调域名即可,此处的域名不需要加http:// (关于网页授权回调域名的说明详情可参考公众平台开发者文档) 2.获取授权 关于OAuth2.0博主参考

【奇葩】网页直接获取访问用户的qq号是怎么实现的?

问题描述 [奇葩]网页直接获取访问用户的qq号是怎么实现的? 最近在网上看到很多营销程序, 都是只要用户在登陆过qq空间,qq新闻等qq网页应用后再访问你的网站, 你就能直接获取到访问者的qq号, 请问,这是怎么实现的? 是什么原理? 希望各位大神给解惑一下 最好详细一点 先谢谢了!!!

Magicodes.WeiChat——使用OAuth 2.0获取微信用户信息

使用Magicodes.WeiChat,可以很方便的获取到微信用户的信息.在使用OAuth 2.0之前,你先需要做以下操作: 1)在开发者中心修改[网页授权获取用户基本信息],在弹出的界面输入自己的根域名.比如:weichat.chinacloudsites.cn 如下图所示: 2)配置菜单或者链接(如果使用特性"WeChatOAuth",本步骤可以略过,这里只是介绍下原理,具体请参考步骤3的说明).Magicodes.WeiChat在控制器WeiChatController中进行处理