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

以下是代码

{

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

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;

}

php获取qq号码,php获取qq用户昵称和在线状态(实例分析)相关推荐

  1. 获取qq号码性别 接口_用户诉QQ浏览器违法获取个人隐私!实测发现好友列表被自动提取...

    日前,QQ浏览器因违法收集用户微信以及QQ账号的头像.性别.生日.好友列表等个人隐私信息,被用户起诉至江西某法院.法院审理后裁定腾讯公司立即停止在QQ浏览器App中获取上述用户隐私信息的行为,并对双方 ...

  2. html中qq号码怎么写,qq号码免费申请6位号的方法

    qq号码免费申请6位号的方法 qq号码免费申请6位号怎么操作?.很多人都知道,在国内,6位的QQ号几乎已经是绝版了,按照正常的申请根本就不可能得到,因为现在已经进入到10QQ号码的时代了,但是还有一种 ...

  3. 知道QQ号码 怎么取它的昵称呢?

    http://users.qzone.qq.com/fcg-bin/cgi_personalcard.fcg?uin=QQ号码   自己在用正则或寻找文本取  "nick":  后 ...

  4. java设备imei号_Android 获取imei号码,获取手机型号和系统版本号

    在AndroidManifest.xml文件中要添加 才有权限 TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEP ...

  5. 如何查看手机的android版本号,android系统如何获取imei号码,获取手机型号和系统版本号...

    核心代码: Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) .getDeviceId(); 1.加入权限 在manife ...

  6. Android 获取imei号码,获取手机型号和系统版本号

    在AndroidManifest.xml文件中要添加 <uses-permission android:name="android.permission.READ_PHONE_STAT ...

  7. android获取来电号码,Android获取来电号码代码详解

    对于Android平台的整个来电软件制作十分简单,Android平台在各方面都比较智能,加上一个BOOT_COMPLETED获取,保证开机自动运行,一个来电通就很容易的制作完成了. Android来电 ...

  8. python获取游戏窗口_python中pygame针对游戏窗口的显示方法实例分析(附源码)

    本文实例讲述了python中pygame针对游戏窗口的显示方法.分享给大家供大家参考,具体如下: 在这篇教程中,我将给出一个demo演示: 当我们按下键盘的'f'键的时候,演示的窗口会切换到全屏显示和 ...

  9. 从进程中获取QQ号码

    制作这个程序的过程中,我查阅了很多相关资料, 对系统编程有了进一步的了解, 下面我就编制这个程序的原理过程和一些心得写出来, 给大家参考. 一. 取QQ号码原理: QQ程序在运行过程中, 所有数据都是 ...

最新文章

  1. windows服务搭建及命令总结
  2. MaperReduce实验
  3. 读取SD卡里面的BMP文件 显示到TFT上
  4. 【存储知识学习】第五章-5.1-5.3 RAID磁盘阵列-《大话存储》 阅读笔记
  5. python如何显示时间_如何让python显示当前时间(东部)
  6. WebFlux响应式编程基础之 4 reactive stream 响应式流
  7. 全球信息数据量陡增 大数据应用前景广阔
  8. 手机IMSI号码编码规则表
  9. 爱了!再来推荐5个Java项目开发快速开发脚手架。项目经验和私活都不愁了~
  10. 定积分求导例题_定积分典型例题
  11. phpnow php升级,phpnow如何升级php版本
  12. 为什么mysql中不要用blob这种大字段
  13. 转载:JAVE 视音频转码
  14. 基于 dev 分支创建新的分支
  15. 通用验证方法学(Universal Verification Methodology, UVM):简介及内容导航
  16. how2heap 深入学习(2)
  17. 浏览器截图截取整个页面的方法
  18. 《你好,安怡》热播,AI觉醒,奇点临近?
  19. 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之6---移动增值业务概述
  20. php 批量删除redis缓存,php redis 批量删除keys的方法

热门文章

  1. 2.JFreeChart条形图
  2. 根据excel里面的内容寻找文件
  3. 再不疯狂我们就老了-说说《疯狂猜图》那些事儿
  4. 配置Path环境变量
  5. 130.ElasticSearch(五):es聚合查询,nested数组
  6. 用ECS做HexMap:六边形单元的颜色混合
  7. 咖说 | 硅谷“加密黑帮”大揭秘:一览 37 家科技圈区块链初创企业
  8. react全生命周期
  9. 8.18 B组 T1 分火腿
  10. 同学信誓旦旦地说,我司的系统从来不做性能调优!