想要自定义QQ在线图标,关键是要获取到QQ在线状态,为此写了如下函数以获取QQ在线状态。
我给出了4种状态,其实一般只需要判断是否在线(1/2)就可以,另外2种状态(0/3)用于调试。

此函数通过腾讯的两个接口判断,一定程度上增加了判断的稳定性。

注意:此函数需要服务支持file_get_contents读取URL。

/*!
 * 获取腾讯QQ在线状态
 * @param int $uin 腾讯QQ号码
 * @return int [0:服务器错误,1:离线或隐身,2:在线,3:异常]
 */
function get_qq_status($uin) {
  if($uin > 9999) {
    error_reporting(0);
    $data = file_get_contents("http://webpresence.qq.com/getonline?type=1&{$uin}:");
    $data || $data = strlen(file_get_contents("http://wpa.qq.com/pa?p=2:{$uin}:45"));
    if(!$data) { return 0; }
    switch((string)$data) {
      case '854': case 'online[0]=0;': return 1;
      case '834': case 'online[0]=1;': return 2;
    }
  }
  return 3;
}

标签: php, qq

添加新评论