我在脚本中使用PHP exec()将PDF文件与PDFTK合并。
来自PHP文档:exec function表示第二个参数(如果提供)将列出控制台输出中的每一行。我得到的只是一个空数组。
正在使用的代码示例:
exec(pdftk "file1.pdf" "file2.pdf" Merged_File.pdf, $output = array(), $result);
如果我在控制台中运行代码,我可以成功地获取错误,但我希望我的应用程序能够访问全文错误。
答案 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);
}
?>