【问题标题】:PDFtk command not running from execPDFtk 命令未从 exec 运行
【发布时间】:2017-11-02 11:02:01
【问题描述】:

我已将我的代码从一台 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 文件中。

这似乎一定是某种权限问题,但可执行文件的权限似乎是相同的。对此我失去了理智。

【问题讨论】:

    标签: php wamp exec pdftk


    【解决方案1】:

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

    <?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);
    ?>
    

    或者如果您删除了您的第一个“>”?

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

    想一想,这些测试可能会对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多