2

我正在尝试运行以下命令,但据我所知它没有运行,因为没有生成文件。我根本没有收到任何错误消息,当我在我的 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);
4

1 回答 1

3

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);
于 2013-01-29T01:31:41.113 回答