如何在PHP中创建一个网页的图像


How do you create an image of a web page in PHP?

如何在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在马里奥的回答。请记住,在共享主机上不建议这样做(事实上,可能甚至不可能)。