从php执行bash脚本不能在Windows上运行

时间:2012-08-10 15:31:14

标签: php windows bash xampp wampserver

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

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

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

1 个答案:

答案 0 :(得分: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;
?>