1
如果$ ch在PHP中沒有準備好,curl_multi_getcontent($ ch)會返回什麼結果?
如果$ ch在PHP中沒有準備好,curl_multi_getcontent($ ch)會返回什麼結果?
答案你問的問題是
curl_multi_getcontent
回報NULL
。curl_multi_getcontent
返回到目前爲止檢索到的數據。
你的意思是問這樣的問題,顯然是這樣的:我怎麼知道什麼時候curl_multi...
操作完成?
答案是你不用curl_multi_getcontent
這個。取而代之的是,反覆呼叫curl_multi_exec
,直到第二個參數(也就是在其傳輸中仍在使用的子句柄的數量)變爲0. This blog post從手冊中的註釋中顯示一些工作代碼。你可能也想看看curl_multi_select
,它會阻塞,直到連接上有一些活動。這可能會導致更少的週期浪費,導致curl_multi_exec
調用:請參閱manual page上的示例#1,以獲取curl_multi_exec
。
如果您使用的是5.2.0或更高版本,則可以使用curl_multi_info_read
來獲取單個連接的狀態,而不是等待所有連接的狀態。 (manual)
嗯......我可能很快就打了'接受'。看起來,當我使用curl_multi_getcontent($ ch)!== NULL的條件時,我只獲得了頁面的前幾行,然後中斷了。我認爲它仍在下載,我得到的信息有點過早。 – KeatsKelleher 2010-09-11 01:15:41
正如前面提到的(現在進一步解釋),在調用'curl_multi_getcontent'之前,您應該測試'curl_multi_exec'的結果以查看它是否等於'CURLM_CALL_MULTI_PERFORM'。 – grossvogel 2010-09-11 03:09:30
什麼時候我想知道多個句柄中的單個句柄是否完成? – KeatsKelleher 2010-09-16 15:50:46