在windows xp上,我可以使用shell_exec()函数从PHP运行许多命令。
我需要在PHP 10的Windows 10上使用OfficeToPDF。 我的php脚本是:
<?php
$command = 'OfficeToPDF input.docx output.pdf';
$exec = shell_exec($command);
echo $exec;
?>
此脚本适用于Windows XP Professional,但不适用于Windows 7,8,10。 OfficeToPdf只需打开Microsoft Word并将文件另存为PDF。 win7,win8,win10有什么变化?为什么我无法在新操作系统上从PHP执行此命令?
我有自动从SYSTEM用户启动的apache服务。
更新:但是当我手动打开cmd窗口时,我可以运行OfficeToPDF input.docx output.pdf
命令。
答案 0 :(得分:1)
我怀疑缺少一些必需的环境变量。您应该尝试在命令窗口实例中运行,该实例将设置默认的env vars:
$command = 'cmd /c OfficeToPDF input.docx output.pdf'; $exec = shell_exec($command); echo $exec;
如果默认目录不正确,您可能希望使用OfficeToPDF,input.docx和output.pdf的完整路径,或者首先调用chdir()。
/ C的含义是:
/ C执行string指定的命令,然后终止