我试图使用exec()运行一个a命令行util,但是它没有返回任何东西。我在php.net上看到,需要设置cmd.exe上的权限以允许iis用户运行它。我还没能用我能想到的任何方法做到这一点。cacls、icacls和标准安全屏幕都不起作用。我正在将输出记录到mysql数据库中。
我的代码如下所示:
$Ret = array();
$err = "";
exec("dir", $Ret, $err);在db中,我得到$Ret的数组。
可能是命令有问题,我对此表示怀疑,或者我需要以某种方式设置权限。
请帮帮忙。
发布于 2012-07-04 08:25:06
更改行:
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的浏览器中运行此命令,则可能需要使用view-source来查看结果。
https://stackoverflow.com/questions/11319493
复制相似问题