1
我正在設置一個網站,用戶將能夠發佈鏈接,並且curl(在php中)將抓取網址,並根據元數據格式化某些內容,打開圖形標記,等我有它設置爲與multi_init和multi_exec同時上傳。我創造了什麼是應該做的類here.一個要點是:如果內容類型錯誤,則中止捲曲下載
- 獲取元數據從多個網址
- 返回一個JSON字符串,但僅適用於內容類型「text/html的」網頁(所以不要不要打擾與圖像,js,可執行文件等的直接鏈接)
這個問題似乎是CURLOPT_HEADERFUNCTION的回調。我認爲當內容類型頭文件存在時返回-1,但不是HTML頭文件會中止下載,但它似乎沒有做任何事情(雖然檢查看起來是正確的,它似乎返回-1。 )它似乎仍然允許任何內容類型。
這裏專門爲回調:
CURLOPT_HEADERFUNCTION => function($ch, $header){
// if they're sending a content-type header, it must be text/html
if(stripos(trim($header), "Content-Type") === 0){
list($key, $val) = explode(":", $header);
if(stripos(trim($val), "text/html") === 0){
return strlen($header);
}
else{
return -1;
}
}
else{
return strlen($header);
}
}
我試圖curl_close但得到一個錯誤約在回調結束捲曲。有什麼建議麼?
我不得不改變一些事情讓它與multi_exec工作(主要是使用數組,而不是一個單一的全球),但沒有工作,謝謝。我用班級的工作版本更新了上面的要點。 – 2013-04-21 23:03:32