0

このスクリプトを xampp ( ubuntu ) で実行しましたが、正常に動作します。しかし、Windowsで実行しようとすると、エラーは発生しませんが、出力もありません。

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

PHP は保存モードでは実行されません。何が問題ですか ?それはOSに依存していますか?

4

1 に答える 1

3

これは、lsが UNIX ベースのコマンドであり、Windows では使用できないためです。

エラーが表示されないのは、shell_exec が STDERR ではなく STDOUT のみを出力するためです。エラーを表示できるようにしたい場合は、次のようにコマンドを実行できます。

$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 に答える