2010-11-03 84 views
1

“在内存中”,我的意思是屏幕截图不会写入文件。在PHP中,是否可以在内存中截取网页截图?

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

如果可能,它是如何完成的?

+0

一些注意事项:1,存储到数据库并不意味着它没有写入文件。这只是表示它存储在数据库的文件系统中,可能在磁盘上,而不是标准文件系统中。 2,你是否已经有截图,或者你也在问如何生成它们?对于PHP来说这不太可能,因为PHP不是HTML/CSS渲染器。您通常需要一个浏览器和一个显示器(至少一个虚拟X/VNC显示器)来创建屏幕截图。 – JAL 2010-11-03 04:13:01

+0

@Alex JL:你真的不需要显示器来生成屏幕截图。有些工具会直接渲染图像,毕竟,即使浏览器需要在显示内容之前在内存中生成图像。 – casablanca 2010-11-03 04:18:03

+0

@casablanca这很好,我查看了各种webkit渲染器,但是最后我检查了它们都显得很丑。我必须查看你推荐的那些。我刚刚在Xvfb上启动了一个真正的浏览器,获得了最好的运气。 – JAL 2010-11-03 04:23:49

回答

3

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

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

+0

我在开发过程中使用CutyCapt。我刚刚介绍了部署到生产时可能遇到的问题。我会看看'/ tmp'是否可用。谢谢! – 2010-11-03 05:11:37

相关问题