PHP повторяет сценарий до успеха или ошибки

Я пытаюсь создать 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 раз; если не получится с первого раза. Чтобы определить, работает скрипт в первый/второй/третий раз или нет, при использовании "file_get_contents" должен быть найден текст "#endofscript" или "failure". Если отображается что-то еще, кроме "#endofscript" или "failure", это должно считаться ошибкой и должно повторяться до тех пор, пока не будет найдено. Если он по-прежнему не найден после третьей попытки, может ли отображаться сообщение об ошибке? Например, "Ошибка. Повторите попытку".

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


person aullah    schedule 14.07.2010    source источник


Ответы (1)


person    schedule
comment
Привет webbiedave, я очень ценю ваш ответ :). Я немного понимаю, как работает код, однако я считаю, что на данный момент код не знает, когда он успешен, поскольку переменная $success пуста. Как мне включить текст #endofscript и сбоя как успех, а все остальное как ошибку? Кроме того, как мне показать сообщение об ошибке, если оно не работает в третий раз? С уважением, и я очень ценю ваш ответ. - person aullah; 15.07.2010
comment
А как насчет: if ($no9 == '#endofscript') { $success = true; } else { $success = false; } и if ($try > 3) { echo 'Error - Please try again'; } - person webbiedave; 15.07.2010
comment
Спасибо за ответ, webbiedave, я им очень благодарен. Эти коды, кажется, могли бы выполнять свою работу, однако как мне их включить? Будут ли они выглядеть примерно так: $maxTries = 3; for ($try=1; $try‹=$maxTries; $try++) { // ваш код if ($no9 == '#endofscript') { $success = true; } еще { $ успех = ложь; } { перерыв; } if ($try › 3) { echo 'Ошибка. Повторите попытку'; } } А также, когда он отображает сообщение об ошибке, возможно ли использовать его как переменную php? Чтобы я мог отобразить сообщение в другом месте на странице? - person aullah; 15.07.2010
comment
И извините за беспокойство, но разве переменная $success не пуста? Как это ничего не значит? Еще раз, я ценю ваш ответ. Спасибо тебе за все. :) - person aullah; 15.07.2010
comment
Лол, для этого мне нужно как минимум 15 репутации; У меня этого нет. Но я могу поставить этот вопрос как принятый ответ. :) - person aullah; 15.07.2010