【发布时间】:2026-02-17 13:20:05
【问题描述】:
我正在尝试让 PHP 调用一个批处理文件,该批处理文件将获取一个 RTF 文件并使用 OpenOffice 宏将其转换为 PDF。我已经在命令行上测试了批处理文件,它工作正常,但我没有任何运气从 PHP 调用和使用相同的批处理文件。
我的机器操作系统是 XP Professional SP 3。我正在运行 IIS 6 和 PHP 版本 5.2.9。 我已在 c:\windows\system32\cmd.exe 上向 Internet 用户授予执行权限。 我指定了正在执行的批处理文件的完整路径和要转换的 RTF 文件的完整路径。
PHP 看起来像这样,其中 $arg 是要转换的 RTF:
$arg = "C:\\web_root\\whatever\\tempOutput.rtf";
$command = "c:\\windows\\system32\\cmd.exe /c c:\\web_root\\whatever\\convert.bat $arg";
然后在 try-catch 中调用 exec 命令:
exec("$command 2>&1 && exit", $ret, $err);
我在 catch 后回显结果:
echo "ret: ";
print_r ($ret);
print "<br>";
echo "err is ";
echo $err;
print "<br>";
echo "DONE!";
这就是我所看到的:
ret: Array ( )
err is 0
DONE!
RTF 文件没有被转换,我没有看到错误。关于下一步我可以尝试什么的任何想法?谢谢!!!
【问题讨论】:
-
你能列出你的批处理文件吗?
标签: php exec openoffice.org