Я использую вызов PHP для службы REST для извлечения информации из базы данных XML eXist, запуска на локальном хосте, захвата результатов с помощью file_get_contents()
и использования этих результатов для заполнения раскрывающегося списка в форме запроса.,Я думал, что file_get_contents()
должен был автоматически ждать полных результатов, но, очевидно, это не так;иногда список полностью заполнен, а иногда урезан.Усечение происходит в разных местах, и перезагрузка страницы (перезапуск PHP и, следовательно, вызов REST) обычно исправляет это, хотя иногда это происходит не с первой попытки.
Если я правильно диагностировал проблему какдело file_get_contents()
не дожидаясь результатов, может кто-нибудь посоветовать мне как это исправить?Или есть альтернативное объяснение?Вот соответствующий фрагмент из PHP:
$getPersonNamesQuery = <<< EOQ1
{for \$i in doc('/db/genealogy/genealogy.xml')//person[not(.//firstName eq "unknown")]
order by string-join(\$i/name/*," ")
return
{normalize-space(concat(
\$i/name/firstName,
" ",
if (\$i/name/epithet) then concat("â",\$i/name/epithet,"â) else "",
" ",
\$i/name/patronymic," ",
if (not(\$i/@origin eq "Rus'" or \$i/@origin eq "unknown")) then concat("of ",\$i/@origin) else ""
))}
}
EOQ1;
$contents = "http://localhost:8080/exist/rest/db/genealogy?_howmany=10000&_wrap=no&_query=" . urlencode($getPersonNamesQuery);
$personNames = file_get_contents($contents);
Спасибо,
Дэвид