Запуск локального PHP-скрипта из PHP-скрипта и передача параметров GET - PullRequest
1 голос
/ 03 января 2011

Я написал функцию, которая запускает скрипт php и возвращает его вывод. Я хотел бы знать, есть ли лучший способ сделать это, поскольку мне кажется, что это скорее обходной путь. Поскольку скрипт является локальным, использование page_get_contents (с полным URL-адресом) кажется довольно расточительным, так как это занимает больше времени.

function runpage($path, $query) {
    parse_str($query, $_GET);
    $oldquery = $_SERVER["QUERY_STRING"];
    $_SERVER["QUERY_STRING"] = $query;
    ob_start();
    include $path;
    $out = ob_get_contents();
    ob_end_clean();
    $_SERVER["QUERY_STRING"] = $oldquery;
    return $out;
}

Большое спасибо!

1 Ответ

1 голос
/ 03 января 2011

Да, это кладжа. Нет, лучшего способа нет.

Весь смысл этого фрагмента в том, чтобы быть обходным путем. Вы могли бы очень хорошо переписать включенный скрипт, сделать так, чтобы он считывал входные переменные из другого массива и правильно возвращал вывод через вызов функции. Или вы можете превратить его в исполняемый скрипт и получить доступ к argv вместо $_GET - но для этого потребуется столько же реструктуризации.

Да, это неловко. Но смирись с этим. Скрипты и каналы оболочки ни в коем случае не чище, чем этот PHP-плагин (кроме переопределения $ _GET это все равно похоже на создание шаблонов). И независимо от этого, неловкость не означает, что она потерпит неудачу. Только не делайте это обычной конструкцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...