首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP文件转换为exec()另一个PHP文件并使用返回的数据

PHP文件转换为exec()另一个PHP文件并使用返回的数据
EN

Stack Overflow用户
提问于 2012-07-24 11:21:46
回答 1查看 132关注 0票数 0

文件displaypage.php如下所示:

代码语言:javascript
运行
复制
<?php

exec("php filetoexecute.php 2>&1",$output);
print_r($output);

?>

文件filetoexecute.php如下所示:

代码语言:javascript
运行
复制
<?php

echo "test data";

?>

我的$output数组中唯一的东西是PHP_FCGI_CHILDREN is not valid,我在网上得不到太多的帮助。我知道为什么它在那里,我将STDERR重定向到STDOUT,但是为什么文本test data没有写到数组中呢?

我知道,只要我不想检索输出,它就会工作。如果displaypage.php中的代码看起来像这样,那么filetoexecute.php中的代码将正确执行(假设我让它向数据库中写入一些内容):

代码语言:javascript
运行
复制
exec("php filetoexecute.php >/dev/null");

当然,这是因为输出被转储为空。

我这样做是因为我需要filetoexecute.php在不同的php session cookie下运行,而不是在调用它的文件下操作。我不能仅仅为filetoexecute.php处理的几行代码切换会话。我需要知道filetoexecute.php的结果是什么,这就是为什么我需要它产生的数据。

而且,passthru()似乎对我一点帮助都没有。

最后,我不喜欢使用exec()或passthru()的想法,如果能实现我想要的东西,我将非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2012-07-26 02:39:17

经过多次实验,我发现了一些有用的东西。我还不理解它,因为我不熟悉CLI,而且真的没有太多用处,但以下是工作原理:

displaypage.php

代码语言:javascript
运行
复制
<?php

$returnedData = exec("php filetoexecute.php &");

echo $returnedData;

?>

不管是什么原因,末尾的“与”号是exec()返回被调用页面的所有输出的原因。我不知道这是否是实现这一目标的最好方法,但它现在对我很有效。如果你有什么建议可以做得更好,我很想知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11623672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档