使用PHP exec时从PDFTK获取完整错误

时间:2014-04-30 21:36:41

标签: php pdftk

我在脚本中使用PHP exec()将PDF文件与PDFTK合并。

来自PHP文档:exec function表示第二个参数(如果提供)将列出控制台输出中的每一行。我得到的只是一个空数组。

正在使用的代码示例:

exec(pdftk "file1.pdf" "file2.pdf" Merged_File.pdf, $output = array(), $result);

如果我在控制台中运行代码,我可以成功地获取错误,但我希望我的应用程序能够访问全文错误。

1 个答案:

答案 0 :(得分:2)

您可能希望使用 proc_open 从stderr获取消息。像这样:

<?php

$cmd = "/path/to/script arguments here";
$cwd = dirname(__FILE__);
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin
   1 => array("pipe", "w"),  // stdout
   2 => array("pipe", "w"),  // stderr
);

if ( ($process = proc_open($cmd, $descriptorspec, $pipes, $cwd, null)) !== false )
{
  // Standard output
  $stdout = stream_get_contents($pipes[1]);
  fclose($pipes[1]);

  // Errors
  $stderr = stream_get_contents($pipes[2]);
  fclose($pipes[2]);

  proc_close($process);
}

?>