仅在变量具有特定值时才继续读取 XML
Only proceed to read XML if variable has certain value
我有一段相当简单的 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');
我是 reading an XML file, for example,如果 XML 文件中的状态是 "UpdatesComplete",我只想继续阅读行程。如果status是"UpdatesPending",我基本上是想等2秒。然后再次检查并在必要时再等待 2 秒。
但是我最终陷入了无限循环。我检查了我的 $answer
变量,似乎我得到了我想要检查的字符串(UpdatesPending 或 UpdatesComplete)。
谁能告诉我我做错了什么?
$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));
我有一段相当简单的 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');
我是 reading an XML file, for example,如果 XML 文件中的状态是 "UpdatesComplete",我只想继续阅读行程。如果status是"UpdatesPending",我基本上是想等2秒。然后再次检查并在必要时再等待 2 秒。
但是我最终陷入了无限循环。我检查了我的 $answer
变量,似乎我得到了我想要检查的字符串(UpdatesPending 或 UpdatesComplete)。
谁能告诉我我做错了什么?
$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));