0

我已经在 xampp ( ubuntu ) 下执行了这个脚本,它工作正常。但是当我尝试在 Windows 下执行它时,它没有给我任何错误,但也没有输出。

<? $command='ls -l'; $output = shell_exec($command); echo $output; ?>

PHP 不在保存模式下运行。问题是什么 ?它取决于操作系统吗?

4

1 回答 1

3

这是因为ls是基于 unix 的命令,在 Windows 上不可用

不显示错误是因为 shell_exec 只输出 STDOUT 而不是 STDERR,如果您希望能够查看错误,可以像这样运行命令:

$output = shell_exec("{$command} 2>&1");

这将显示一个错误,指出找不到 ls 或类似的东西

在 windows 而不是ls你可以运行dir

这可能会有所帮助:

<?
    $command=substr(PHP_OS, 0, 3)=='WIN'?'dir':'ls -l';
    $output = shell_exec("{$command} 2>&1");
    echo $output;
?>
于 2012-08-10T16:01:27.697 回答