4

shell_exec并且exec不返回任何内容。我不知道出了什么问题。

这是一些代码:

echo 'test: ';
$output = shell_exec('whoami');
var_export($output, TRUE);
echo PHP_EOL . '<br>' . PHP_EOL;

这是输出的来源

test 2: 
<br>

我无法控制主机,但我相信他们正在运行 SuPHP。根据phpinfo,safe_mode 已关闭。从 SSH运行whoami输出预期值。

我不知所措。知道如何调试吗?

4

2 回答 2

5

你永远不会打印$output变量。当您使用第二个参数调用它时,该var_export()调用返回变量的内容true,它不会直接打印它。

于 2012-07-10T21:43:50.673 回答
0

如果您希望将 shell 命令的输出读回 PHP,您可能需要popen(). 例如:

if( ($fp = popen("some shell command", "r")) ) {
    while( !feof($fp) ) {
        echo fread($fp, 1024);
        flush(); // input will be buffered
    }
    fclose($fp);
}
于 2012-07-10T21:43:46.820 回答