据我所知,PHP的passthru显示控制台的纯粹输出 - 包括所有输出,如STDERR。 我正在尝试从PHP文件中获取文件,如下所示: p>
<?php
error_reporting(E_ALL);
if(file_put_contents(“code。 java“,”aaaaaa“))
{
passthru(”javac -verbose code.java“);
echo(”Done。“);
}
else
{
echo(”UNEXPECTED“ PHP ERROR“);
}
?>
code> pre>
正如您可能猜到的那样,“aaaaaa”不应该编译 - 我希望javac调用的输出(更不用说-verbose)。 但是,当我访问网页时,我注意到两件事: p>
-
code.java已成功创建并填充了我指定的数据。 p > li>
-
网页的唯一输出是“完成”。 p> li>
ol>
请注意,如果我打电话 来自cmd提示符的完全相同的命令,我得到了一大堆输出。 这里发生了什么? p>
tl; dr; 为什么我没有从passthru()得到任何输出? p>
编辑:如果我将passthru命令字符串更改为“echo PLEASEWORK”,它会正确显示输出 p>
< hr>
出于某种原因,我无法发表评论 -
Quamis,执行此cmd和捕获所有输出的首选方法是什么? p>
div>