我最近用堆栈溢出提供的指令安装了pdftk
我安装它,并运行命令whereis pdftk
结果
/usr/local/bin/pdftk /usr/bin/pdftk
我有powerpannel访问,我通过它看到,pdftk实际上存在于该位置
我运行命令pdftk --version
,没关系
但在php中使用
<?php $command = "pdftk --help"; system("PATH=/usr/local/bin/ && $command",$response); if ($response===FALSE){ echo 'sorry error occured'; } else{ echo $response; } ?>
输出是127我使用的版本是1.41和输出'127'是我不能理解的东西
有人可以指导我吗?
编辑
其实,我正在试图通过填写一个pdf格式生成dynamicpdf,我的passthru是
passthru("/usr/local/bin/pdftk hud3.pdf fill_form result.pdf output - flatten");
这没有任何回报
虽然声明之前的声明popup下载,我按保存button将其保存在本地,它不是保存在我的硬盘上。 试图debugging情况,并从已经问的问题上得到帮助,我认为先运行pdftk。 这是上述127情况上升的地方,需要指导
一些事情。
1)不要编译自己的pdftk,并将其粘贴到/ usr / local / bin /中。 你应该使用包来代替。 pdftk软件包在RPMForge仓库中可用:
$ yum info pdftk Loaded plugins: priorities, ps Available Packages Name : pdftk Arch : i686 Version : 1.44 Release : 2.el6.rf Size : 906 k Repo : rpmforge Summary : PDF Tool Kit URL : http://www.pdfhacks.com/pdftk/ License : GPL Description : If PDF is electronic paper, then pdftk is an electronic staple-remover, : hole-punch, binder, secret-decoder-ring, and X-Ray-glasses. Pdftk is a simple : tool for doing everyday things with PDF documents. Keep one in the top drawer : of your desktop and use it to:
事实上,如果你的“whereis”正在返回你正在显示的内容,pdftk已经被安装了。 运行rpm -qa |grep pdftk
。 如果你没有得到任何东西,请通过yum进行安装(查看http://wiki.centos.org/AdditionalResources/Repositories/RPMForge ,了解如何将RPMForge添加到可用的仓库中)。 在任何情况下,删除你编译的。
2)您在PHP中的system
语句是:“PATH = / usr / local / bin / && pdftk –help”。 这将把PATH设置为只有/ usr / local / bin,然后执行pdftk --help
如果它在PATH中find的话。 返回代码127来自bash,并且表示找不到pdftk(这很奇怪,因为你指定了唯一的PATH,但这是另一回事),或者“&&”可能会使PHP系统function混淆。 无论如何,为什么不使用: system("/usr/local/bin/pdftk --help", $response)
?
函数system
返回执行的命令的状态码,而不是实际的string输出。 你可以查看这个页面 。 所以127
的值就是执行命令的退出状态。
要获得文本输出,您需要使用shell_exec 。