PHP执行linux命令太快终止了吗?

时间:2015-11-23 10:02:50

标签: php linux exec wkhtmltopdf shell-exec

我正在尝试使用wkhtmltopdf将html文档转换为pdf文件。我将在linux上使用的命令:wkhtmltopdf 15.52579.html 15.52579.pdf

首先输出类似Loading pages (1/6) [> ] 0% [=====的内容,加载到100%,然后显示:

Loading pages (1/6) Counting pages (2/6) Resolving links (4/6) Loading headers and footers (5/6) Printing pages (6/6) Done

我希望php执行此命令。我已经尝试使用php的exec("wkhtmltopdf 15.52579.html 15.52579.pdf")shell_exec("wkhtmltopdf 15.52579.html 15.52579.pdf"),无论是否通过添加2>&1来捕获stderr。我还尝试了proc_open个功能。

每次,我的结果都是Loading pages (1/6) [> ] 0% [======> ] 10%。看起来命令返回太快,不允许程序完成并实际创建pdf。

运行php的用户具有执行程序的正确权限。脚本由网页执行,并且应该在几秒钟内完成。我错过了什么?

1 个答案:

答案 0 :(得分:1)

另一种方法是使用一个名为snappy的库(php5),它包装wkhtmltopdf并提供一个漂亮而干净的面向对象的接口,并提供正确的错误报告。

.vshost

访问github进行下载和进一步的文档:https://github.com/knplabs/snappy