2012-02-03 118 views
1

我想在我的web服务器上运行pdftk。这是一个PHP 5.3.2的Linux Centos。在Linux上通过php运行pdftk centos

当我通过COMMANDE线连接它,我做

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) 

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

那么,什么是错的?

感谢您的帮助!

+0

您使用'高管以同样的方式受到影响(PDFTK A = p1-9.pdf cat A1 output p1.pdf)'或'exec(“pdftk A = p1-9.pdf cat A1 output p1.pdf”)'?注意命令周围的引号。此外,你会得到什么错误信息,这是什么意思“它不工作”? – gioele 2012-02-03 14:38:35

+0

当然我使用引号。当我写下这条消息时,我忘了把它们放进去。感谢那。此外,PDF不会生成... – 2012-02-03 15:31:25

回答

3

我以前遇到过这个问题。假设你将命令字符串换成了引号(如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()应该

+0

当我回应$回应,我没有任何东西。我在哪里可以看到它安装的pdftk? – 2012-02-03 15:17:48

+0

我的pdftk在这里/ usr/local/bin – 2012-02-03 15:22:40

+0

您是否尝试过设置'system(“PATH = \ $ PATH:/ usr/local/bin/&& $ command”,$ response);'? – 2012-02-03 16:06:05