Login   Register  
PHP Classes
elePHPant
Icontem

File: ICQStatus.class.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Andrea Cristaudo  >  ICQStatus  >  ICQStatus.class.php  >  Download  
File: ICQStatus.class.php
Role: Class source
Content type: text/plain
Description: Main class
Class: ICQStatus
A simple class for getting icq status of an uin
Author: By
Last change: There was a big change in the icq online status system. Now the class works fine.
Date: 11 years ago
Size: 1,459 bytes
 

Contents

Class file image Download
<?php
class ICQStatus{
    var 
$status;
    var 
$fp;
    var 
$ICQServer 'status.icq.com';

    function 
ICQStatus(){
        
$this->status = array();
    }

    function 
Connect2ICQServer(){
        
$this->fp fsockopen($this->ICQServer80$errno$errstr90);
        
socket_set_blocking($this->fp1);
    }

    
/* Return  0 if uin's status is offline,
               1 if uin's status is online,
               2 if uin's status is unknown */
    
function GetStatus($uin){
        
$this->Connect2ICQServer();
        if( isset(
$this->status[$uin]) ){
            return 
$this->status[$uin];
        }

        
$data '';
        
fputs($this->fp,
              
'GET /online.gif?icq=' $uin '&img=1 HTTP/1.1' "\r\n" .
              
'Host: ' $this->ICQServer "\r\n\r\n");
        while( !
feof($this->fp) ){
            
$data fgets($this->fp2048);
            if( 
ereg('Location: +(.*)'$data$parts) ){
                break;
            }
        }

        
$this->status[$uin] = 2;
        if( isset(
$parts[1]) ){
            
$file trim($parts[1]);
            if( 
$file == '/1/online1.gif' ){
                
$this->status[$uin] = 1;
            }
            elseif( 
$file == '/1/online0.gif' ){
                
$this->status[$uin] = 0;
            }
        }

        return 
$this->status[$uin];
    }

    function 
CloseICQConnection(){
        
fclose($this->fp);
    }
}
?>