PHP Retry Script до успеха или ошибки - PullRequest
0 голосов
/ 17 августа 2010

Спасибо, что нашли время, чтобы прочитать это, и я буду благодарен за каждый отдельный ответ, независимо от качества контента. :)

Я пытаюсь создать скрипт php, который повторяет другой скрипт php до 3 раз, пока не отобразится сообщение об ошибке. Я думаю, возможно, это можно сделать с помощью цикла 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 раз; если это не сработает в первый раз.

Чтобы определить, работает ли скрипт в первый / второй / третий раз или нет, текст «#endofscript» или «fail» должен быть найден при использовании «file_get_contents». Текст «#endofscript» должен быть в переменной «$ no9», а текст «fail» должен быть в переменной «$ no2». Если найдено что-то еще, кроме «#endofscript» или «fail», это следует считать ошибкой и повторять до тех пор, пока не будет найдено. Если он все еще не найден после третьей попытки, может ли появиться сообщение об ошибке? Например, «Ошибка. Пожалуйста, попробуйте еще раз».

Спасибо за вашу помощь, и я буду благодарен за каждый ответ. Если вам нужна более подробная информация, пожалуйста, не стесняйтесь спрашивать. :) И снова я очень благодарен за это. :)

1 Ответ

1 голос
/ 17 августа 2010
$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.';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...