网站截图
自 PHP 5.2.2 起,仅使用 PHP 就可以截取网站了!
imagegrabscreen — 截取整个屏幕
imagegrabwindow - 使用窗口句柄 (COM 实例中的 HWND 属性) 来截取窗口或其客户端区域
HWND; $Browser->Visible = true; $Browser->Fullscreen = true; $Browser->Navigate('http://www.stackoverflow.com'); while($Browser->Busy){ com_message_pump(4000); } $img = imagegrabwindow($Browserhandle, 0); $Browser->Quit(); imagepng($img, 'screenshot.png'); ?>
编辑:注意,这些函数仅适用于 Windows 系统!
最近编辑: 7年过去了,我仍然收到这个答案的赞,但我想这个现在更准确。
当然可以,但你需要用某种方式渲染页面。
如果你真的只想使用PHP,我建议你使用HTMLTOPS,它将呈现页面并将其输出到ps文件(Ghostscript),然后将其转换为.jpg,.png,.pdf ......在处理复杂页面时速度可能有点慢(并且不支持所有CSS)。
否则,您可以使用wkhtmltopdf将HTML页面输出为pdf,jpg等......接受CSS2.0,使用webkit(Safari的包装器)呈现页面......一切都应该没问题。
您也必须在服务器上安装它。
更新:现在,使用新的HTML5和JS功能,也可以使用JavaScript将页面呈现为canvas对象。这里有一个很好的库: Html2Canvas,作者已经实现了一个反馈功能,类似于G+。一旦您将dom呈现到canvas中,就可以通过ajax将其发送到服务器并将其保存为jpg。
编辑: 您可以使用imagemagick工具将pdf转换为png。我的wkhtmltopdf版本不支持图像。例如,convert html.pdf -append html.png
。
编辑: 这个小的shell脚本在linux上使用php5-cli和上面提到的工具中提供了一个简单/但有效的使用示例。
编辑: 我现在注意到wkhtmltopdf团队正在开发另一个项目:wkhtmltoimage,该项目直接提供jpg。