我正在尝试运行以下命令,但据我所知,它没有运行,因为没有生成文件。我根本没有收到任何错误消息,当我在我的 Linux 机器上测试这个命令时,它工作正常,但我将我的网站转移到运行 xampp 的 Windows 机器,因为我有几天没有互联网连接。所以我正在更改命令以在 Windows 上使用。我认为我的命令中一定有错误,但由于我在 Windows 上使用 apache、php 的经验很少,我希望其他人能够发现错误(如果有)。
$command = 'C:\\Program Files (x86)\\PDF Labs\\PDFtk Server\\bin\\pdftk.exe C:\\xampp\\htdocs\\lc712\\pdf\\TimeCard.pdf fill_form C:\\xampp\\htdocs\\lc712\\pdf\\results\\' . $userName . '.fdf' . ' output C:\\xampp\\htdocs\\lc712\\pdf\\results\\' . $userName . '.pdf flatten';
exec($command);
这是最终有效的代码:
$command = '"C:\Program Files (x86)\PDF Labs\PDFtk Server\bin\pdftk.exe" C:\xampp\htdocs\pdf\TimeCard.pdf fill_form C:\xampp\htdocs\pdf\results\\' . $userName . '.fdf' . ' output C:\xampp\htdocs\pdf\results\\' . $userName . '.pdf flatten';
exec($command);
最佳答案
C:\Program Files (x86)\PDF Labs\PDFtk Server\bin\pdftk.exe
包含空格,因此 Windows 将尝试执行 C:\Program
带参数 Files
、(x86)\PDF
、Labs\PDFtk
、Server\bin\pdftk.exe
、 ...
尝试用引号转义路径:
$command = '"C:\\Program Files (x86)\\PDF Labs\\PDFtk Server\\bin\\pdftk.exe" C:\\xampp\\htdocs\\lc712\\pdf\\TimeCard.pdf fill_form C:\\xampp\\htdocs\\lc712\\pdf\\results\\' . $userName . '.fdf' . ' output C:\\xampp\\htdocs\\lc712\\pdf\\results\\' . $userName . '.pdf flatten';
exec($command);
关于php - php exec() 运行时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14573961/