如何在PHP中渲染和保存一个网页作为图像,可能宽度为600px。如何在不使用浏览器的情况下在PHP中呈现页面?我如何以给定的分辨率和图像格式(jpeg)保存它?功能类似于谷歌预览,除了它不会在滚动中显示。
类似于这个问题,它在c#中得到了回答。如何将网页另存为图片
谢谢!
您应该获得wkhtmltoimage
,这很容易在PHP中使用:
exec("../wkhtmltoimage --crop-w 600 http://example.com/ output.png");
还有其他选择,而不是--crop-w
或--width 600
,它可能会更好的缩小缩放使用GD或imagemagick之后
你不能在纯PHP中这样做,你总是需要一个外部渲染器来获得一个好的结果。
最好的办法是使用外部服务,比如browsershots.org API,这样你就不会在服务器上产生额外的负载。
如果你有资源要燃烧,你可以使用另一个方法(仍然在你的服务器上运行,只是不是PHP)叫做wkhtmltoimage在马里奥的回答。请记住,在共享主机上不建议这样做(事实上,可能甚至不可能)。