2009-10-09 105 views
0

我寫了這個函數來獲取谷歌閱讀器項的未讀數。谷歌閱讀器未讀數

function GetUnread($sid) 
{ 
    $url = "http://www.google.com/reader/api/0/unread-count?all=true&output=xml"; 
    $msg = urldecode($msg); 
    $msg = stripslashes($msg); 
    $msg = urlencode($msg); 
    $url = $url . $msg; 

    $purl = parse_url($url); 
    $uri = $purl['scheme'] . "://" . $purl['host'] . $purl['path'] . "?" . $purl['query']; 

    $cookie = "Name=SID;SID=" . $sid . ";Domain=.google.com;Path=/;Expires=16000000"; 

    $headers = array(); 
    array_push($headers, "GET " . $uri . " HTTP/1.0"); 
    array_push($headers, "Host: " . $purl['host']); 
    array_push($headers, "Referer: " . $uri); 
    array_push($headers, "Cookie: " . $cookie); 
    array_push($headers, ""); 
    $headers = implode("\r\n", $headers); 

    echo $headers; 

    $conn = fsockopen($purl['host'], 80, $errno, $errstr, 30); 
    if ($conn) 
    { 
     fputs($conn, $headers); 
     $response = ""; 
     while (!feof($conn)) //Appears to loop indefinitely until feof's timeout(60) 
     { 
      $response .= fgets($conn, 128); 
     } 
     fclose($conn); 
    } 

    echo $response; 
} 

時產生看起來像這樣的標題:

GET http://www.google.com/reader/api/0/unread-count?all=true&output=xml HTTP/1.0 
Host: www.google.com 
Referer: http://www.google.com/reader/api/0/unread-count?all=true&output=xml 
Cookie: Name=SID;SID=DQA...zA;Domain=.google.com;Path=/;Expires=16000000 

它只是坐在那裏,一旦加載完成後沒有響應字符串。這是頭文件還是fsockopen的問題?

回答

0

首先嚐試簡化您嘗試獲取的網址(只需嘗試google.com)。如果返回響應,則可能會有某種身份驗證問題。

+0

我嘗試了各種各樣的組合,我已經結束了使用cUrl – woody993 2009-10-10 05:52:11