1

我正在尝试使用 exec() 运行命令行实用程序,但它不返回任何内容。我在 php.net 上读到需要设置 cmd.exe 的权限以允许 iis 用户运行它。我无法使用我能想到的任何方法来做到这一点。cacls icacls 和标准安全屏幕不起作用。我正在将输出记录到 mysql 数据库。

我的代码如下所示:

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

在数据库中,我得到 $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 回答