使用php怎么获取qq的在线状态

介绍

本篇文章为大家展示了使用php怎么获取qq的在线状态,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

代码如下:


& lt; ?phpfunction get_qq_status(印尼)
{
, error_reporting (0);
, $ f=file_get_contents (& # 39; http://wpa.qq.com/pa?p=1 & # 39;。印尼# 39;公司美元:4 & # 39;);
,如果(! $ f)返回(真正);
, foreach (http_response_header val美元美元)
, {
,如果(大小写敏感(val美元,& # 39;内容长度# 39;)!==false)
,{
,,返回(intval中substr (50) val美元,16日)在1000年),
,}
,}
}

?在

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

代码如下:


& lt; ?
函数tphp_qq_online(印尼)
{
,,,reques 美元;=癎ET/pa ? p=1:“印尼美元!”:1 HTTP/1.1 rn";
,,,reques美元。=爸鞒秩?wpa.qq.comrn";
,,,reques美元。=皍ser - agent: PHP_QQ_SPYrnrn";

,,,如果(! $插座=socket_create (AF_INET, SOCK_STREAM SOL_TCP)))返回(1);
,,,如果(! (socket_connect(插座美元,“wpa.qq.com", 80)))返回(1);
,,,如果(! (socket_write(插座,reques美元)))返回(1);
,,,如果(! $应答=socket_read(插座,1024美元,PHP_BINARY_READ)))返回(1);;
,,,socket_close(插座);

,,,$字段=爆炸(“rn", $响应);,
,,,($ i=0;i<美元;count($字段);$ + +){
,,,,,,,如果(trncasecmp(美元($ i)领域,“位置:“,9)==0){
,,,,,,,,,,,如果(大小写敏感(美元($ i),“online")) {
,,,,,,,,,,,,,,,ret=1美元;
,,,,,,,,,,,}else if(大小写敏感(美元($ i),“offline")) {
,,,,,,,,,,,,,,,随著美元=0;
,,,,,,,,,,,}{,其他
,,,,,,,,,,,,,,,ret=1美元;
,,,,,,,,,,,}//如果
,,,,,,,,,,,打破;
,,,,,,,}//如果
,,,}//

,,,返回(ret);
}
/*}}} */

,

回声tphp_qq_online (561272831),

?在

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

代码如下:


//获取qq状态
函数getQQState (qq美元){
,,,$ url=& # 39; http://wpa.qq.com/pa?p=2 & # 39; qq强生# 39;美元:41,r=& # 39;。时间(),
, headInfo=get_headers美元($ url, 1);
,长度=headInfo美元[& # 39;内容长度# 39;],
,如果(长度==1243美元){
,返回true;
,其他}{
,返回false;
,}
}
//获取QQ昵称
函数getQQNick (QQ美元){
, $ str=file_get_contents (& # 39; http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=& # 39;。QQ美元);
,模式=& # 39;美元/& # 39;.preg_quote (& # 39;“nickname":“& # 39;, & # 39;/& # 39;) # 39;公司(. * ?)& # 39;.preg_quote(& # 39;“& # 39;, & # 39;/& # 39;) # 39;公司/我# 39;;
, preg_match(模式,str美元,导致美元);
,返回结果[1]美元;
}
//获取QQ姓名
函数getQQName (QQ美元){
,//$ qqArr=包括& # 39;friendArr.php& # 39;;//预先设置的
,//用户名=qqArr美元(美元QQ),
,如果(! $ username) {
,(用户名=getQQNick美元qq);
,}
,返回用户名美元;
}

使用php怎么获取qq的在线状态