このスクリプトを xampp ( ubuntu ) で実行しましたが、正常に動作します。しかし、Windowsで実行しようとすると、エラーは発生しませんが、出力もありません。
<?
$command='ls -l';
$output = shell_exec($command);
echo $output;
?>
PHP は保存モードでは実行されません。何が問題ですか ?それはOSに依存していますか?
このスクリプトを xampp ( ubuntu ) で実行しましたが、正常に動作します。しかし、Windowsで実行しようとすると、エラーは発生しませんが、出力もありません。
<?
$command='ls -l';
$output = shell_exec($command);
echo $output;
?>
PHP は保存モードでは実行されません。何が問題ですか ?それはOSに依存していますか?
これは、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;
?>