php获取qq号码,php获取qq用户昵称和在线状态(实例分析)
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用户昵称和在线状态(实例分析)相关推荐
- 获取qq号码性别 接口_用户诉QQ浏览器违法获取个人隐私!实测发现好友列表被自动提取...
日前,QQ浏览器因违法收集用户微信以及QQ账号的头像.性别.生日.好友列表等个人隐私信息,被用户起诉至江西某法院.法院审理后裁定腾讯公司立即停止在QQ浏览器App中获取上述用户隐私信息的行为,并对双方 ...
- html中qq号码怎么写,qq号码免费申请6位号的方法
qq号码免费申请6位号的方法 qq号码免费申请6位号怎么操作?.很多人都知道,在国内,6位的QQ号几乎已经是绝版了,按照正常的申请根本就不可能得到,因为现在已经进入到10QQ号码的时代了,但是还有一种 ...
- 知道QQ号码 怎么取它的昵称呢?
http://users.qzone.qq.com/fcg-bin/cgi_personalcard.fcg?uin=QQ号码 自己在用正则或寻找文本取 "nick": 后 ...
- java设备imei号_Android 获取imei号码,获取手机型号和系统版本号
在AndroidManifest.xml文件中要添加 才有权限 TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEP ...
- 如何查看手机的android版本号,android系统如何获取imei号码,获取手机型号和系统版本号...
核心代码: Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) .getDeviceId(); 1.加入权限 在manife ...
- Android 获取imei号码,获取手机型号和系统版本号
在AndroidManifest.xml文件中要添加 <uses-permission android:name="android.permission.READ_PHONE_STAT ...
- android获取来电号码,Android获取来电号码代码详解
对于Android平台的整个来电软件制作十分简单,Android平台在各方面都比较智能,加上一个BOOT_COMPLETED获取,保证开机自动运行,一个来电通就很容易的制作完成了. Android来电 ...
- python获取游戏窗口_python中pygame针对游戏窗口的显示方法实例分析(附源码)
本文实例讲述了python中pygame针对游戏窗口的显示方法.分享给大家供大家参考,具体如下: 在这篇教程中,我将给出一个demo演示: 当我们按下键盘的'f'键的时候,演示的窗口会切换到全屏显示和 ...
- 从进程中获取QQ号码
制作这个程序的过程中,我查阅了很多相关资料, 对系统编程有了进一步的了解, 下面我就编制这个程序的原理过程和一些心得写出来, 给大家参考. 一. 取QQ号码原理: QQ程序在运行过程中, 所有数据都是 ...
最新文章
- windows服务搭建及命令总结
- MaperReduce实验
- 读取SD卡里面的BMP文件 显示到TFT上
- 【存储知识学习】第五章-5.1-5.3 RAID磁盘阵列-《大话存储》 阅读笔记
- python如何显示时间_如何让python显示当前时间(东部)
- WebFlux响应式编程基础之 4 reactive stream 响应式流
- 全球信息数据量陡增 大数据应用前景广阔
- 手机IMSI号码编码规则表
- 爱了!再来推荐5个Java项目开发快速开发脚手架。项目经验和私活都不愁了~
- 定积分求导例题_定积分典型例题
- phpnow php升级,phpnow如何升级php版本
- 为什么mysql中不要用blob这种大字段
- 转载:JAVE 视音频转码
- 基于 dev 分支创建新的分支
- 通用验证方法学(Universal Verification Methodology, UVM):简介及内容导航
- how2heap 深入学习(2)
- 浏览器截图截取整个页面的方法
- 《你好,安怡》热播,AI觉醒,奇点临近?
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之6---移动增值业务概述
- php 批量删除redis缓存,php redis 批量删除keys的方法