当前位置:Linux教程 - Php - 试试看这个判断ICQ是否在线的代码好用吗?

试试看这个判断ICQ是否在线的代码好用吗?

<?  
function get_status($uin)
{  
    $fp = fsockopen ("wwp.icq.com", 80, &$errno, &$errstr, 30);  
    if(!$fp)
    {  
        echo "$errstr ($errno)<br>\n";  
    }
    else
    {
        fputs($fp, "GET /scripts/online.dll?icq=$uin&img=5 HTTP/1.0\n\n");  
        $do = 'yes';  
        while(!feof($fp))
        {
            $line = fgets ($fp,128);
            $do = ($do == 'yes')?'yes':(eregi("^GIF89", $line))?'yes':'no';
            //echo $line;
            
            if($do == 'yes')
            {
                if(ereg("@", $line))
                {
                    return 'online';  
                }
                elseif(ereg("醱", $line))
                {  
                    return 'offline';  
                }
                elseif(ereg("S", $line))
                {
                    return 'disabled';  
                }
            }
            
        }
        fclose($fp);  
    }  
    return 'unknown!';  
}


$uin="72485936";  // sonymusic 的ICQ,呵呵。
echo get_status($uin);
// offline
// HTTP/1.0 200 OK Content-type: image/gif GIF89a(幵觮R瑴螗#%醱` ?0? 靦Wb缒unknown
// online
// HTTP/1.0 200 OK Content-type: image/gif GIF89a(幵觮R 瑴�