文件 displaypage.php 如下所示:
<?php
exec("php filetoexecute.php 2>&1",$output);
print_r($output);
?>
文件 filetoexecute.php 如下所示:
<?php
echo "test data";
?>
我的 $output 数组中唯一的东西是PHP_FCGI_CHILDREN is not valid
,我在网上没有得到太多帮助。我知道它为什么在那里,我将 STDERR 重定向到 STDOUT,但为什么文本test data
没有写入数组?
我知道它会起作用,只要我不想检索输出。如果 displaypage.php 中的行如下所示,filetoexecute.php 中的代码将正确执行(假设我让它向数据库写入一些内容):
exec("php filetoexecute.php >/dev/null");
这当然是因为输出被转储为空。
我这样做是因为我需要 filetoexecute.php 在与调用它的文件不同的 php 会话 cookie 下运行。我不能只为 filetoexecute.php 处理的几行代码切换会话。我需要知道 filetoexecute.php 的结果是什么,这就是我需要它产生的数据的原因。
此外,passthru()
似乎根本没有帮助我。
最后,我不同意使用 exec() 或 passthru() 的想法,将不胜感激有关可以完成我想要的事情的提示!