あなたはCURLINFO_HTTP_CODE
オプションでcurl_getinfo機能を使用する必要がありますを要求し始めたときに停止するようにcURLのです。 CURLINFO_HTTP_CODE
は、最後に要求されたページのHTTPコードを返します。
EDIT:以下の例はページの内容を返します(その機能を望んでいない場合は変更できます)。
このループは、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はリクエストを送信しているだけなので、あなたのURLが1,2,3のみで動作することをcURLがどのように知っていますか? – sheplu
サーバはステータスコード(この場合は404)を返します。実際にオプション-fを指定すると、サーバがエラーステータスコードを返す場合(そしてURLを出力している場合)、ファイルは作成されません。 – user3748883
はい、ただし、cURLに1から100の範囲を指定するように要求します。おそらく4は404しかし5が動作します。だから、cURLはあなたの範囲内のすべての値を試します – sheplu