PHP file to exec()创建另一个PHP文件并使用返回的数据
displaypage.php文件如下所示:PHP file to exec()创建另一个PHP文件并使用返回的数据,php,Php,displaypage.php文件如下所示: <?php exec("php filetoexecute.php 2>&1",$output); print_r($output); ?> <?php echo "test data"; ?> exec("php filetoexecute.php >/dev/null"); 当然,这是因为输出被转储为零 我这样做是因为我需要filetoexecute.php在不同于调用它的文件的php会话
<?php
exec("php filetoexecute.php 2>&1",$output);
print_r($output);
?>
<?php
echo "test data";
?>
exec("php filetoexecute.php >/dev/null");
当然,这是因为输出被转储为零
我这样做是因为我需要filetoexecute.php在不同于调用它的文件的php会话cookie下运行。我不能只为filetoexecute.php处理的几行代码切换会话。我需要知道filetoexecute.php的结果是什么,这就是为什么我需要它生成的数据
而且,passthru()
似乎对我没有任何帮助
最后,我不赞成使用exec()或passthru(),如果您能提供一些可以实现我所希望的功能的提示,我将不胜感激 经过多次试验,我发现了一些有效的方法。我还不了解它,因为我对CLI不熟悉,也没有太多用处,但以下是有效的方法: displaypage.php
<?php
$returnedData = exec("php filetoexecute.php &");
echo $returnedData;
?>
无论出于何种原因,末尾的符号AND会导致exec()返回被调用页的输出。我不知道这是否是实现这一目标的最佳方式,但它现在对我起作用了。如果您有任何更好的建议,我很想知道。简单地使用文件或流与父进程对话可能更容易(
displaypage.php
,对于您的情况)。@Patrick我在本地主机上运行您的程序,并正确输出“数组([0]=>测试数据)”,结果是…错误报告(E_ALL)@乌兹恩,你能再详细一点吗?我不知道你是什么意思…@swapnesh我害怕那样的事情。我在一台GD共享主机服务器上运行,带有专用IP,我想他们可能锁定或关闭了某些东西,但我不知道是什么原因,因为当我不需要传回数据时,它会起作用。@Patrick是的,这可能是因为在共享主机中,他们可能有block exec()来执行外部程序