0

cURLと「404」エラー検出を使用して、さまざまなファイル名を含む配列を循環するスクリプトを作成しようとしています。つまり、最初のデフォルトのファイル名が「404」になった場合、同じ cURL セッションを実行しながら配列を循環するループ関数を作成します。ステータス「200」を検出すると、ループを停止し、クライアントから送信された次の値に進みます。foreach() を使用してみましたが、成功しませんでした。これは私が最初に使用しているコードです。

<?php

if (isset($_POST['request'])) {
$req = $_POST['request'];
$url = $addr;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') {
echo $url;
}
curl_close($ch);                                
}

?>
4

1 に答える 1

0
if (isset($_POST['request'])) {
    $req = $_POST['request'];
    $url = $addr;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);

    for ($retry = 1; $retry <= $retry_max; $retry++) {
        $ret= curl_exec($ch);
        preg_match("/^HTTP\/[01\.]+ ([0-9]{3}[A-Za-z\(\)\- ]+)/",$ret,$getcode);
        if (strcmp($getcode[1], '200 OK') === 0) {
            break;
        } 
        else {
          sleep(10);
        }
    }
    curl_close($ch);                                
}
于 2013-07-10T21:07:42.610 に答える