Windows允许用户运行命令

时间:2018-06-11 08:16:36

标签: php windows system-administration

在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命令。

1 个答案:

答案 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指定的命令,然后终止