使用范围

时间:2017-08-03 15:55:34

标签: http curl request

例如,如果我要求此网址:

curl http://www.example.com/index.html?page=[1-100]

想象一下,查询页面中只存在范围[1-3]。为什么cURL在到达4号时会停止请求网址?

我想要的是cURL在开始请求页码5时停止(因为第4页将返回404代码)

1 个答案:

答案 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++; 
}
相关问题