【发布时间】:2015-07-31 20:43:36
【问题描述】:
我已经在我的 CentOS VPS 中安装了库 wkhtmltopdf link,当我使用终端从我的服务器运行它时:“wkhtmltopdf https://www.google.comgoogle.pdf”我在输出中收到一些消息,如下所示:
加载页面 (1/6)
计数页数 (2/6)
解析链接 (4/6)
加载页眉和页脚 (5/6)
打印页数 (6/6)
完成
并创建 PDF。
现在当我将 PHP 与 exec 命令一起使用时:
<?php
$output = shell_exec("/usr/local/bin/wkhtmltopdf https://www.google.com google.pdf");
var_dump($output);
?>
PDF 文件已创建,一切正常,但我得到 NULL 作为 $output 变量的值。为什么 exec 命令的输出不一样?
谢谢
【问题讨论】:
-
对不起,虽然我不认为你理解我的答案,但我错了,它与使用 shell_exec() 相同,所以我删除了答案。我在我的脚本中正是这样做的(除了我使用的是反引号而不是 shell_exec)所以我现在完全不确定为什么它不适合你。
-
在阅读 this 时,我想到可能 shell_exec 在您的 php.ini 中被禁用?
-
我尝试在 exec 脚本 shell_exec("/usr/local/bin/wkhtmltopdf google.comgoogle.pdf 2>&1 &") 的末尾添加“2>&1 &”;和它现在正在运行,请问还有其他建议吗?
-
我现在真的很困惑——你到底要什么?您所做的只是将错误输出重定向到标准输出并让程序在后台运行?
-
等等——你问的是
shell_exec和exec之间的区别吗?在这种情况下exec不返回输出,它允许您将其收集到一个数组中,并将其作为第二个参数...?