【问题标题】:Run pdftk by php on linux centos在 linux centos 上通过 php 运行 pdftk
【发布时间】:2012-02-03 14:17:15
【问题描述】:

我想在我的网络服务器上运行 pdftk。这是一个带有 PHP 5.3.2 的 Linux Centos。

当我通过命令行连接它时,我会这样做

pdftk --version

没关系

pdftk A=p1-9.pdf cat A1 output p1.pdf

没关系。

现在,我通过 php 来完成:

exec(pdftk A=p1-9.pdf cat A1 output p1.pdf)

这不好。为什么??我搜索了文件的链接,但看起来还可以。

这也不行:

exec(pdftk --version)

我用这个How do I install Pdftk on my server?安装pdftk

那怎么了??

感谢您的帮助!

【问题讨论】:

  • 您使用的是exec(pdftk A=p1-9.pdf cat A1 output p1.pdf) 还是exec("pdftk A=p1-9.pdf cat A1 output p1.pdf")?注意命令周围的引号。另外,您收到什么错误消息,“它不起作用”是什么意思?
  • 我当然用引号。当我写这条消息时,我忘了把它们放上去。感谢那。另外,没有生成PDF...

标签: php centos pdftk


【解决方案1】:

我以前遇到过这个问题。假设您将命令字符串用引号括起来(如 gioele 所述),问题可能是您在运行系统命令时需要set your path。试试这个:

$command = "pdftk A=p1-9.pdf cat A1 output p1.pdf";
system("PATH=\$PATH:/usr/bin/ && $command",$response);
if ($response===FALSE){
   //there was an error, handle it
}

(我还在那里添加了一些响应处理)。如果这不起作用,请检查您应该使用什么路径(这将取决于您安装 PDFTK 的位置)。

我相信你也可以通过使用putenv("PATH=" .[your path]); 得到相同的结果,我在这里使用了system(),但是exec() 应该会受到同样的影响

【讨论】:

  • 当我回显 $response 时,我什么都没有。我在哪里可以看到 pdftk 的安装位置?
  • 我的pdftk在这里/usr/local/bin
  • 你试过设置system("PATH=\$PATH:/usr/local/bin/ && $command",$response);吗?
  • 是的!这是工作。 system("PATH=/usr/local/bin && pdftk A=p1-9.pdf cat A1 输出 p1.pdf");
猜你喜欢
  • 2013-06-26
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 2012-08-22
  • 2012-07-16
相关资源
最近更新 更多