Windows允许用户运行命令

问题描述 投票:0回答:1

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

php windows system-administration
1个回答
1
投票

我怀疑缺少一些必需的环境变量。您应该尝试在命令窗口实例中运行,该实例将设置默认环境变量:


    $command = 'cmd /c OfficeToPDF input.docx output.pdf';
    $exec = shell_exec($command);
    echo $exec;

如果默认目录不正确,您可能希望使用OfficeToPDF,input.docx和output.pdf的完整路径,或者首先调用chdir()。

/ C的含义是:

/ C执行string指定的命令,然后终止

© www.soinside.com 2019 - 2024. All rights reserved.