2011-03-03 42 views
2

如何與一個Zend_Http_Client取代的file_get_contents應該被替換如何與一個Zend_Http_Client(編碼等differnce。)(編碼等differnce ..)取代的file_get_contents

代碼:??

$url='http://google.com';$timeout=60; 
$t = stream_context_create(array('http' => array('timeout' => $timeout))); 
$content = @file_get_contents($url,0,$t); 

我的解決方案:

$url='http://google.com';$timeout=60; 
$client = new Zend_Http_Client($url, array('timeout' => $timeout)); 
$content=$client->request()->getBody(); 

請你有更好的解決辦法,母鹿我的解決方案有薄弱的部分?


編輯:改進方案

function getResponse($url='http://google.com',$timeout=60){ 
    $client = new Zend_Http_Client($url, array('timeout' => $timeout)); 
    if($content->isError()) { 
      return null; 
    } 
    return $content->getBody(); 
} 

備註:活動更好的可使用該做的工作要快得多捲曲適配器。

感謝, 優素福

+0

缺少一些東西......我想「$ content = $ client-> request() - > getBody();」在if($ Content位)之前 – coderama 2013-02-06 09:54:29

回答

1

這沒關係。您還可以檢查響應代碼是什麼,並基於此進行操作。在某些情況下,您可以獲得像500,404或403這樣的代碼。

+0

你建議添加哪個代碼?也許它更好地檢查哪個響應代碼成功了,比如200等。因爲理論上存在更多失敗的響應代碼?請參閱我的編輯請 – Yosef 2011-03-04 10:48:54

+1

@Yosef:是的,我會將支票取消,僅返回身體成功狀態代碼(即2xx)。 – wimvds 2011-03-04 12:03:54

+0

isSuccess只檢查2 ..不是3 ..也可能是好的,所以我用isError檢查4 .. + 5 ..回覆狀態 – Yosef 2011-03-04 13:11:33