在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执行此命令?
我有apache服务自动从SYSTEM用户启动。
更新:但是当我手动打开cmd窗口时,我可以运行OfficeToPDF input.docx output.pdf
命令。
我怀疑缺少一些必需的环境变量。您应该尝试在命令窗口实例中运行,该实例将设置默认环境变量:
$command = 'cmd /c OfficeToPDF input.docx output.pdf'; $exec = shell_exec($command); echo $exec;
如果默认目录不正确,您可能希望使用OfficeToPDF,input.docx和output.pdf的完整路径,或者首先调用chdir()。
/ C的含义是:
/ C执行string指定的命令,然后终止