【问题标题】:shell_exec in PHP returns empty stringPHP中的shell_exec返回空字符串
【发布时间】:2012-07-10 21:39:50
【问题描述】:

shell_execexec 不返回任何内容。我不知道出了什么问题。

这里有一些代码:

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 会输出预期值。

我很茫然。知道如何调试吗?

【问题讨论】:

    标签: php shell-exec


    【解决方案1】:

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

    【讨论】:

    • 我把它改成了echo var_export($output, TRUE);。现在它输出NULL。有什么想法吗?
    • @sharoz 试试shell_exec('/usr/bin/whoami');,并确保 /usr/bin 是正确的路径。
    【解决方案2】:

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

    if( ($fp = popen("some shell command", "r")) ) {
        while( !feof($fp) ) {
            echo fread($fp, 1024);
            flush(); // input will be buffered
        }
        fclose($fp);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 2016-04-10
      • 2011-11-27
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      相关资源
      最近更新 更多