php exec()错误值

时间:2010-02-15 23:29:42

标签: php exec

我有两个后续的exec命令。第一个执行没有问题第二个但是抛出错误:

exec('/usr/bin/pdftk A='. trim($original) .' cat A1 output '. trim($onepage), $output, $error);
var_dump($output); var_dump($error);

exec('/usr/bin/pdftk '. trim($onepage) .' background watermark.pdf output '. trim($modified), $output, $error);
var_dump($output); var_dump($error); 

第一个产生:

array(0) { } int(0) 

第二个:

array(0) { } int(1) 

php脚本和目录的权限完全相同。我已尝试使用escapeshellargs删除exec命令,但也没有运气。

2 个答案:

答案 0 :(得分:1)

我不确定您的错误是什么,但我建议您减少一些背景噪音,以便您可以更轻松地查看问题。我的意思是以下......

exec('/usr/bin/pdftk A='. trim($original) .' cat A1 output '. trim($onepage), $output, $error);
var_dump($output); var_dump($error);

exec('/usr/bin/pdftk '. trim($onepage) .' background watermark.pdf output '. trim($modified), $output, $error);
var_dump($output); var_dump($error); 

并且

$command1 = '/usr/bin/pdftk A='. trim($original) .' cat A1 output '. trim($onepage);
$command2 = '/usr/bin/pdftk '. trim($onepage) .' background watermark.pdf output '. trim($modified);

exec($command1, $output, $error);
var_dump($output); var_dump($error);
echo $command1;

exec($command2, $output, $error);
var_dump($output); var_dump($error); 
echo $command2;

通过这种方式,您可以将发出的命令的输出剪切并粘贴到unix命令行上,并且可以更好地查看unix级别的内容。

答案 1 :(得分:0)

最终工作的内容如下:

   $descriptorspec = array(
      0 => array("pipe", "r"), 
      1 => array("pipe", "w"));
   proc_open('/usr/bin/pdftk '. trim($onepage) .' background watermark.pdf output '. trim($modified), $descriptorspec, $pipes);