例如,如果我要求此网址:
curl http://www.example.com/index.html?page=[1-100]
想象一下,查询页面中只存在范围[1-3]。为什么cURL在到达4号时会停止请求网址?
我想要的是cURL在开始请求页码5时停止(因为第4页将返回404代码)
答案 0 :(得分:0)
您应该将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++;
}