dtn36013
2014-04-30 21:36
浏览 39
已采纳

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

I'm using PHP exec() in a script to merge PDF files with PDFTK.

From PHP docs: exec function says the second argument, if provided, will list each line from the console output. All I get is an empty array though.

Example of code being used:

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

I can successfully get errors if I run the code in the console, but I'd like for my application to have access to the full text errors.

图片转代码服务由CSDN问答提供 功能建议

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

来自PHP文档:执行功能说第二个参数 ,如果提供,将列出控制台输出中的每一行。 我得到的只是一个空数组。

正在使用的代码示例:

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

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

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • drmeu26880 2014-04-30 21:51
    已采纳

    You are probably looking to get messages from stderr using proc_open. Something like this:

    <?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);
    }
    
    ?>
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题