Я пытаюсь запустить сценарий на удаленном сервере и получить результаты этого скрипта, возвращаемого вызывающему скрипту. Переменная отправляется на удаленный скрипт и на основе этого удаленный сценарий предназначен для получения списка имен файлов на удаленном сервере и возвращает эти имена файлов в виде массива. Однако использование return во включенном файле не возвращает фактическое значение, оно просто прерывает скрипт. Кроме того, удаленный скрипт работает без проблем, и я могу иметь его var_dump список имен файлов для меня, но это не очень хорошо для меня в локальном скрипте. Оба сервера принадлежат нам (мы являемся моей компанией).Возвращаемое значение из include на удаленный файл
Я пытался что-то простое, как это просто, чтобы увидеть, если я мог бы получить возвращаемое значение, и это не сработало:
Local Script:
$test = include "http://remote_host_address/remote_script.php";
var_dump($test);
Remote Script:
$ret = "Hello World";
return $ret;
Этот выход int(1)
. Сам код удаленного скрипта работает отлично, что я тестировал, и переменная, которую я отправляю как переменную get, также не вызывает проблем. Единственная проблема заключается в том, что я не получаю возвращаемое значение из remote_script.
Кроме того, да allow_url_include
включен для локального сервера. Однако он отключен для удаленного сервера; но это не должно иметь значения: http://php.net/allow-url-include.
Я рассмотрел некоторые другие связанные вопросы по этой теме, и ничто, похоже, не описывает мою проблему. Любая помощь будет принята с благодарностью, поскольку я потратил несколько часов на это уже и не добился какого-либо прогресса.
Это плохая практика, которой следует избегать. Во всяком случае, решение @ Glavić, вероятно, сработает. Вы удалены, включая php-файл. Это означает, что http-обертка попросит удаленный сервер выполнить файл php, а include попробует ** впоследствии ** включить (то есть выполнить локально) свой вывод. Результат здесь ничего не значит, поскольку ваш далекий сценарий ничего не повторяет. Таким образом, включают в себя «1», что означает, что он успешно включал пустой вывод. – Kethryweryn
@ Kethryweryn - Хорошая практика или нет, я не буду спорить. В любом случае, я пытался иметь удаленный скрипт echo/var_dump, и он печатает на экране, но это не влияет на возвращаемое значение оператора include. Кроме того, решение Glavic технически работает в том, что он запускает скрипт, но затем скрипт запускается локально; Я хочу, чтобы он работал на удаленном сервере, чтобы получить список файлов. Если есть еще один способ сделать это, я открыт для предложений. – Meir