Продолжайте читать XML, только если переменная имеет определенное значение

У меня есть довольно простой кусок кода PHP

$xml = file_get_contents($url, false, $context);
$response = simplexml_load_string($xml);
$status_response = $response->xpath('/PollSessionResponseDto/Status');
$answer = $status_response[0];

while ($answer<>"UpdatesComplete") {
sleep(2);
$answer = $response->xpath('/PollSessionResponseDto/Status')[0];
}

$itenaries = $response->xpath('/PollSessionResponseDto/Itineraries/ItineraryApiDto');

я например, чтение XML-файла, и я только хочу продолжить читать дневники, если статус в файле XML — «UpdatesComplete». Если статус «UpdatesPending», я в основном хочу подождать 2 секунды. Затем проверьте еще раз и подождите еще 2 секунды, если это необходимо.

Однако я в конечном итоге в бесконечном цикле. Я проверил мой $answer переменная, и кажется, что я получаю строку, которую я хочу проверить (UpdatesPending или UpdatesComplete).

Кто-нибудь может сказать мне, что я делаю не так?

1

Решение

Значение $answer будут никогда изменить внутри цикла, потому что вы никогда не перезагрузите файл XML с удаленного хоста.

do {

$xml = file_get_contents($url, false, $context);
$response = simplexml_load_string($xml);

$answer = $response->xpath('/PollSessionResponseDto/Status')[0];

} while ($answer != "UpdatesComplete" && slee(2));
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]