在PHP中,是否可以在内存中拍摄网页截图?

在PHP中,是否可以在内存中拍摄网页截图?,php,screenshot,Php,Screenshot,所谓“内存中”,我的意思是屏幕截图不会被写入文件 需求是生成将存储在数据库中的网页缩略图。我知道不建议在数据库中保存图像,但我们可能在服务器中没有写入权限,因此我们正在探索此选项 如果可能的话,它是如何实现的?这需要一个用PHP编写的网页渲染器,据我所知,没有库可以做到这一点。不过,有几个命令行工具可以做到这一点(这是一个示例),但它们将写入文件 关于写入权限,您可以写入/tmp,然后通过PHP进行传递。注意:1、存储到数据库并不意味着它没有写入文件。它只是意味着它存储在数据库的文件系统中,可能

所谓“内存中”,我的意思是屏幕截图不会被写入文件

需求是生成将存储在数据库中的网页缩略图。我知道不建议在数据库中保存图像,但我们可能在服务器中没有写入权限,因此我们正在探索此选项


如果可能的话,它是如何实现的?

这需要一个用PHP编写的网页渲染器,据我所知,没有库可以做到这一点。不过,有几个命令行工具可以做到这一点(这是一个示例),但它们将写入文件


关于写入权限,您可以写入
/tmp
,然后通过PHP进行传递。

注意:1、存储到数据库并不意味着它没有写入文件。它只是意味着它存储在数据库的文件系统中,可能存储在磁盘上,而不是标准的文件系统中。2、你是否已经有了截图,或者你正在询问如何生成截图?仅使用PHP是不太可能的,因为PHP不是HTML/CSS呈现程序。您通常需要一个浏览器和一个显示器(至少是一个虚拟X/VNC显示器)来创建屏幕截图。@Alex JL:您真的不需要显示器来生成屏幕截图。有一些工具可以直接渲染图像,毕竟,即使是浏览器在显示图像之前也需要在内存中生成图像。@casablanca很好,我查看了各种webkit渲染器,但我上次检查时,它们看起来都很像sklonky。我得看看你推荐的那些。我很幸运刚刚在Xvfb上启动了一个真正的浏览器。@Alex JL--我确实了解数据库与文件的关系。只是我自己(或web服务器用户)可能没有写入文件的权限。我不会成为潜在服务器的sysad,sysad可能不会那么容易地批准我的请求。另一方面,为我建立一个数据库几乎是肯定的事情。我目前的解决方案使用CutyCapt,它需要Qt框架,而Qt框架又有一个内置的Webkit引擎。它在WinXP、MacOSX和Ubuntu上运行得非常好。对于Linux,它仍然需要Xvfb(或其他一些虚拟显示)。我刚刚看到了在部署到生产环境时可能遇到的问题。我看看
/tmp
是否可用。谢谢