从PHP脚本启动本地PHP脚本并传递GET参数

时间:2011-01-02 22:39:43

标签: php get

我编写了一个运行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 个答案:

答案 0 :(得分:1)

是的,这是一个kludge。不,没有明显更好的方法。

该片段的重点是解决方法。你可以很好地重写包含的脚本,让它从另一个数组中读取它的输入变量,让它通过函数调用正确地返回输出。或者您可以将其转换为可执行脚本,并访问argv而不是$_GET - 但这需要相同数量的重组。

是的,这很尴尬。但是克服它。 Shell脚本和管道绝不比这个PHP包含更清晰(除了$ _GET覆盖它,无论如何都类似于模板)。不管怎样,尴尬并不意味着它会失败。只是不要把它变成一个常规的构造。