我在xampp(ubuntu)下执行了这个脚本,它运行正常。但是当我试图在Windows下执行它时,它没有给我任何错误但也没有输出。
<?
$command='ls -l';
$output = shell_exec($command);
echo $output;
?>
PHP不在保存模式下运行。问题是什么 ?它取决于操作系统?
答案 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;
?>