PDFtk命令未从exec

时间:2017-11-02 11:02:01

标签: php wamp exec pdftk

我已将我的代码从一台WAMP计算机移动到另一台,并且运行pdftk的代码停止工作。我已经比较了pdftk.exe的权限,它们在两台机器上都是相同的。当我从命令提示符运行相同的命令时,它可以工作。我将exec("whoami")添加到脚本中,两台计算机上的用户是相同的。当我运行类似exec('dir 2>&1', $out)的东西时,它执行所以我知道exec在php中正在运行。

我创建了一个简单的php文件进行测试,但它不起作用。

<?php 
$String = 'pdftk.exe > "c:\temp\temp.txt"';
exec("$String");
exec("pdftk.exe > \"c:\temp\temp.txt\"");
?>

两个exec命令都会导致创建一个0字节的文件。

如果我跑

pdftk.exe > "c:\temp\temp.txt"

从命令行将pdftk.exe的输出按预期放入temp.txt文件中。

这似乎是某种权限问题,但可执行文件的权限似乎是相同的。我不记得了。

1 个答案:

答案 0 :(得分:0)

在我看来,第一行应该是:

<?php 
$String = 'pdftk.exe > "c:\temp\temp.txt"';
exec($String); //removed quotes
?>

对于第二行,如果你试试这个怎么办?

<?php 
exec('pdftk.exe > "c:\temp\temp.txt\"', $outputAndErrors, $returnValue);
var_dump($outputAndErrors);
?>

或者,如果您删除了第一个&#34; &gt; &#34;?

<?php 
exec('pdftk.exe "c:\temp\temp.txt\" 2>&1', $outputAndErrors, $returnValue);
var_dump($outputAndErrors);
?>

这些是一些可能对你有所帮助的测试。