0
例如,當,如果我請求這個網址:停止請求與捲曲的URL使用範圍
curl http://www.example.com/index.html?page=[1-100]
試想一下,僅在範圍[1-3]在查詢頁面存在。爲什麼cURL在到達數字4時不會再要求網址?
我要的是捲曲停止在啓動時要求的頁碼5(因爲第4頁將返回404碼)
例如,當,如果我請求這個網址:停止請求與捲曲的URL使用範圍
curl http://www.example.com/index.html?page=[1-100]
試想一下,僅在範圍[1-3]在查詢頁面存在。爲什麼cURL在到達數字4時不會再要求網址?
我要的是捲曲停止在啓動時要求的頁碼5(因爲第4頁將返回404碼)
您應該使用curl_getinfo功能與CURLINFO_HTTP_CODE
選項。 CURLINFO_HTTP_CODE
返回最後請求頁面的HTTP代碼。
編輯:下面是一個例子,下面還將返回頁面的內容(假設你想要的功能,如果不是你可以修改它)。
此while循環開始於page=0
,並將繼續增加到page=1, page=2, etc...
,直到它到達不存在的頁面,然後跳出循環。
$response_code = 0;
$i = 0;
while ($response_code != 404 && $i <= 100)
{
$cURL_handler = curl_init();
curl_setopt($cURL_handler, CURLOPT_URL, 'http://www.example.com/index.html?page=' . $i);
curl_setopt($cURL_handler, CURLOPT_RETURNTRANSFER, 1);
$page_content = curl_exec($cURL_handler);
$response_code = curl_getinfo($cURL_handler, CURLINFO_HTTP_CODE);
curl_close($cURL_handler);
$i++;
}
因爲cURL只是發送請求。 cURL怎麼知道你的URL只能在1,2和3上工作? – sheplu
因爲服務器返回一個狀態碼(在這種情況下爲404)。事實上,使用-f選項,如果服務器返回錯誤狀態代碼(並且您正在輸出url) – user3748883
yes,但它不會創建文件,但是您要求cURL將範圍從1變爲100.也許4會是一個404但是5會工作。所以cURL會嘗試你的範圍內的每個值 – sheplu