我试图让 PHP 调用一个批处理文件,该文件将获取一个 RTF 文件并使用 OpenOffice 宏将其转换为 PDF。我已经在命令行上测试了批处理文件,它工作正常,但我没有任何运气从 PHP 调用和使用相同的批处理文件。
我的机器操作系统是 XP Professional SP 3。我正在运行 IIS 6 和 PHP 版本 5.2.9。我已授予互联网用户在 c:\windows\system32\cmd.exe 上的执行权限。我指定了正在执行的批处理文件的完整路径以及要转换的 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);
我在捕获后回显结果:
echo "ret: ";
print_r ($ret);
print "<br>";
echo "err is ";
echo $err;
print "<br>";
echo "DONE!";
这就是我所看到的:
ret: Array ( )
err is 0
DONE!
RTF 文件没有得到转换,我没有看到错误。关于下一步我可以尝试什么的任何想法?谢谢!!!