У меня есть следующий XML файл
<response>
<query>hello</query>
<zone name="url">
<records s="*" n="0" total="0"/>
</zone>
<zone name="people">
<records s="*" n="20" total="58" next="/result?q=hello&zone=people&s=AoIIRib9grewqTU2MGRkMS02YzgzLTQxYQ%3D" nextStart="AoIIRib9GD8NaWRlbnRpddfsdfk0OWQ=">
<people id="1140172" url="/people/1140172">
</people>
<people id="1482231" url="/people/1482231">
</people>
<people id="832153" url="/people/832153">
</people>
</records>
</zone>
<zone name="collection">
<records s="*" n="20" total="496" next="/result?q=hello&zone=collection&s=AoIIQsdfszdTIyNzc3MDUzNg%3D%3D" nextStart="AoIIQ3sHAysdfdszc3MDUzNg==">
<work id="208227193" url="/work/208227193">
</work>
<work id="225096966" url="/work/225096966">
</work>
<work id="225096968" url="/work/225096968">
</work>
</records>
</zone>
<zone name="gazette">
<records s="*" n="20" total="91239" next="/result?q=hello&zone=gazette&s=AoIIRdAyNjk3NzQ%3D" nextStart="AoIIgdfgek3NzQ=">
<article id="249121748" url="/newspaper/249121748">
</article>
<article id="225072553" url="/newspaper/225072553">
</article>
<article id="249121741" url="/newspaper/249121741">
</article>
</records>
</zone>
<zone name="book">
<records s="*" n="20" total="9245" next="/result?q=hello&zone=book&s=AogxMjk1Mg%3D%3D" nextStart="AoIIQ6HewytzdTIjk1Mg==">
<work id="19554432" url="/work/19554432">
</work>
<work id="31597077" url="/work/31597077">
</work>
<work id="11135964" url="/work/11135964">
</work>
</records>
</zone>
</response>
Я пытаюсь выполнить несколько запросов на одной странице, используя одни и те же данные, но у него есть несколько глюков. Некоторые «зоны» загружаются, а некоторые нет. Вот PHP, который я использую для загрузки данных;
if ($_SERVER["REQUEST_METHOD"] == "GET") {
$last_name= $_GET["lastname"];
$first_name= $_GET["firstname"];
$result = simplexml_load_string(file_get_contents('https://api.url/v2/result?key=e4oheeek7rrr&zone=all&q='.$first_name.'%20'.$last_name));
$books = $result->zone[5]->records->work;
$newspaper = $result->zone[8]->records->article;
$collection = $result->zone[3]->records->work;
$gazette = $result->zone[4]->records->article;
}
Затем в разделах я использую следующее для отображения результата, но он не загружает все зоны одновременно. Если я запускаю запросы отдельно, они работают просто отлично. Ниже приведены 2 примера очереди:
// Display XML Results for Book Zone
$id = 0;
foreach ($books as $book) {
echo ' <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3 col-xl-3 flex-container">';
foreach ($book->title as $titles) {
echo "<div class='book'>";
echo "<span class='titles'>".$titles."</span><br>";
}
foreach ($book->snippet as $about){
echo "<p>Snippet : ".$about."</p>";
}
foreach ($book->type as $type){
echo "<p>Type: ".$type."</p>";
}
foreach ($book->identifier as $links){
echo "<p>Websites: <a href='".$links."' target='_blank' title='Opens in new window' data-toggle='tooltip'>".$links."</a></p>";
}
foreach ($book->contributor as $contributor){
echo "<p>Contributor : ".$contributor."<p>";
}
foreach ($book->issued as $issued){
echo "<p>Issued : ".$issued."</p>";
}
if ($id==7){
echo "<p>Please register to view more results</p>";
break;
}
$id= $id+1;
echo '</div></div>';
}
Это второй запрос. Если я пытаюсь отобразить данные из 4 «зон», иногда загружается 1 или 2, и это могут быть разные «зоны», которые загружаются каждый раз.
// load data for Newspaper Zone
$z = 0;
foreach ($newspaper as $paper) {
foreach ($paper->title as $papername) {
echo "<span class='titles'>Newspaper: ".$papername."</span><br>";
}
foreach ($paper->heading as $heading) {
echo "<span class='headings'> Headings: ".$heading."</span>";
}
foreach ($paper->snippet as $snippets){
echo "<span class='snippet'>Snippet: ".$snippets."</span>";
}
foreach ($paper->troveurl as $web){
echo "<b>Websites: </b><a href='".$web."'>".$web."</a><br>";
}
foreach ($paper->edition as $edition){
echo "<b>Edition </b>: ".$edition."<br>";
}
$z= $z+1;
if ($z==5){
echo "Please register to view more results";
break;
}
}
Спасибо.