【发布时间】:2010-04-02 11:23:35
【问题描述】:
我正在尝试使用 PHP exec() 或 system()(或任何其他类似函数)来运行批处理文件,但我似乎无法让它们返回任何内容。
我见过的最简单的例子是这个,它什么也不输出:
<?php
echo system('dir');
?>
该脚本在安装了 PHP 的 IIS 上的 windows XP 机器上运行,我还在运行 windows 2003 服务器/IIS 的共享主机帐户上尝试过它。
任何人都可以建议我需要做什么才能使其正常工作,或者提供我可以用于故障排除的任何命令吗?
干杯,
汤姆
编辑:第二个例子
根据 pavun_cool 的回答,我尝试了以下方法:
<?php
$last_line = system('dir', $retval);
echo 'last_line '.$last_line.'<br/> retval '.$retval;
?>
输出是:
last_line
retval -1
编辑:第三个例子
基于 Manos Dilaverakis 我尝试了以下代码
<?php
exec('dir', $response);
foreach($response as $line) {
echo $line . "<br>";
}
?>
输出是:
<br>
即在浏览器中显示时为空行。
同样查看php.ini,以下行(可能会禁用这些功能)为空:
disable_functions =
有没有人有任何进一步的建议或其他我可以尝试的方法?
【问题讨论】:
-
...PHP 的关于 exec 和 system 的手册页回答了这个问题。你甚至不需要向下滚动
-
@Manos Dilaverakis - 你能说得更具体一点吗? exec 函数的文本声明“返回值:命令结果的最后一行”。 - 所以我不应该看到我运行的最后一行输出吗?
标签: php windows iis system exec