1

exec()を使用してコマンドラインutilを実行しようとしていますが、何も返されません。php.netで、iisユーザーが実行できるようにcmd.exeのアクセス許可を設定する必要があることを読みました。私は考えられる方法を使ってこれを行うことができませんでした。caclsicaclsと標準のセキュリティ画面は機能しません。出力をmysqlデータベースに記録しています。

私のコードは次のようになります:

$Ret = array();
$err = "";
exec("dir", $Ret, $err);

dbで$Retの配列を取得します

コマンドに問題があるか、疑わしいか、何らかの方法でアクセス許可を設定する必要があります。

助けてください。

4

1 に答える 1

0

行を変更します。

exec("dir", $Ret, $err);

に:

$r = exec("dir", $Ret, $err);
echo $r;

の戻り値をexec変数にキャプチャしてから、それをレンダリングする必要があります。

または、これを実行してみてください:

<?php
$a = array();
$e = "";

echo "exec'ing<br/>";
$r = exec("dir", $a, $e);

echo "var_dumping<br/>";

var_dump($a);

echo "=====================\n";

var_dump($e);

echo "=====================\n";

var_dump($r);

?>

xdebug をオフにしてブラウザーでこれを実行している場合は、結果を確認するためにソースを表示する必要がある場合があります。

于 2012-07-04T00:25:05.553 に答える