我编写了一个运行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;
}
非常感谢!
答案 0 :(得分:1)
是的,这是一个kludge。不,没有明显更好的方法。
该片段的重点是解决方法。你可以很好地重写包含的脚本,让它从另一个数组中读取它的输入变量,让它通过函数调用正确地返回输出。或者您可以将其转换为可执行脚本,并访问argv
而不是$_GET
- 但这需要相同数量的重组。
是的,这很尴尬。但是克服它。 Shell脚本和管道绝不比这个PHP包含更清晰(除了$ _GET覆盖它,无论如何都类似于模板)。不管怎样,尴尬并不意味着它会失败。只是不要把它变成一个常规的构造。