0

これをお読みいただきありがとうございます。コンテンツの品質に関係なく、すべての回答に感謝いたします。:)

エラーメッセージが表示されるまで、別のphpスクリプトを最大3回再試行するphpスクリプトを作成しようとしています。私はおそらくこれがphpループを使用して行うことができると思いますか?コードが最初に正常に機能する場合は、3回再試行する必要はありませんが、最初に機能しない場合は、エラーメッセージが表示されるまで、phpスクリプトを最大3回再試行する必要があります。 。

phpコーディングを使用して、「file_get_contents」を使用して別の場所からコンテンツを取得/フェッチし、その後、各単語/データにphp変数を与えるスクリプトを作成することができました。これはすべて、stackoverflowで他のメンバーから助けを得ることによって行われました(私は非常に感謝しています)。以下のコードはそれをすべて行うものです:

$searchdata = file_get_contents('http://www.example.com');

list($no1, $no2, $no3, $no4, $no5, 
     $no6, $no7, $no8, $no9) = explode(" ", $searchdata);

そこで、このスクリプトを最大3回再試行するある種のループを追加したいと思います。初めて動作しない場合。

スクリプトが1回目、2回目、3回目で動作するかどうかを判断するには、「file_get_contents」を使用するときに「#endofscript」または「failure」というテキストを見つける必要があります。テキスト「#endofscript」は変数「$no9」にあり、テキスト「failure」は変数「$no2」にある必要があります。「#endofscript」または「failure」以外のものが見つかった場合は、エラーとしてカウントされ、見つかるまでループする必要があります。3回目の試行でも見つからない場合は、エラーメッセージが表示される可能性がありますか?「エラー-再試行してください」など。

すべてのご協力に感謝します、そして私は一つ一つの返事に感謝します。詳細が必要な場合は、お気軽にお問い合わせください。:)そしてまた、私はこれに本当に感謝しています。:)

4

1 に答える 1

1
$retries = 0;
$searchdata = null;

while(!$searchdata && $retries < 3) {
    $retries++;
    $searchdata = file_get_contents('http://www.example.com');
    list($no1, $no2, $no3, $no4, $no5, $no6, $no7, $no8, $no9) = explode(" ", $searchdata);
    if($no9 != '#endofscript' || $no2 != 'failure') {
        $searchdata = null;
    }
}

if($searchdata) {
    list($no1, $no2, $no3, $no4, $no5, $no6, $no7, $no8, $no9) = explode(" ", $searchdata);
    // DO STUFF
} else {
    echo 'Please try again.';
}
于 2010-08-16T20:40:14.337 に答える