PHP中的shell_exec返回空字符串

时间:2012-07-10 21:39:51

标签: php shell-exec

shell_execexec未返回任何内容。我无法弄清楚出了什么问题。

以下是一些代码:

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

这是输出的来源

test 2: 
<br>

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

我很茫然。知道怎么调试这个吗?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分: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);
}