我试图在用户单击“导出PDF”按钮时执行控制台命令。我正在使用Phantom JS来生成PDF输出。在PHP中执行控制台命令
如果我跑在我的命令下促使这一切工作正常:
phantomjs.exe generate_pdf.js http://hidden_link.com/view_printable_proposal/CPpktzdnbwDB test.pdf
所以,我在我的控制器创造了一个功能,当您单击导出PDF按钮,它进入该功能:
的整体功能,我有:
public function create_pdf($hash = false)
{
$output = 'phantomjs.exe generate_pdf.js http://hidden_link.com/view_printable_proposal/CPpktzdnbwDB test.pdf';
shell_exec($output);
}
正如你所知道的,我从来三编辑之前以任何语言执行控制台命令。我甚至关闭?
谢谢!如果你不确定它在做什么 - 第一个位,phantomjs.exe调用.exe应用程序,那么“generate_pdf”是一个与同一目录中的javascript文件.exe应用程序。第三项是我想要变成PDF的东西的链接。最后的“test.pdf”就是导出PDF后的命名。再次,通过命令提示符,我试图运行的命令工作正常,一切工作正常。
顺便说一句,目前当我点击按钮,我只是去一个白页,没有任何反应。
+0
您可能需要URL编码在你的命令的空间。但是,通过Web服务器执行时的执行环境在通过用户shell会话执行时可能不同。 –
2013-05-10 21:00:55
+0
我认为它没有进入函数....尝试放置一个表单,只需要一个带有“导出”值的提交按钮,并将其命名为“export_test”;然后检查你的pho文件if(isset($ _ POST ['export'])){create_pdf(); } –
2013-05-10 21:10:03