Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP file to exec()创建另一个PHP文件并使用返回的数据_Php - Fatal编程技术网

PHP file to exec()创建另一个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会话

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会话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()来执行外部程序