1
“在内存中”,我的意思是屏幕截图不会写入文件。在PHP中,是否可以在内存中截取网页截图?
要求是生成将存储在数据库中的网页的缩略图。我知道不建议在数据库中保存图像,但我们可能没有在我们的服务器上写入权限,所以我们正在探索此选项。
如果可能,它是如何完成的?
“在内存中”,我的意思是屏幕截图不会写入文件。在PHP中,是否可以在内存中截取网页截图?
要求是生成将存储在数据库中的网页的缩略图。我知道不建议在数据库中保存图像,但我们可能没有在我们的服务器上写入权限,所以我们正在探索此选项。
如果可能,它是如何完成的?
这将需要一个用PHP编写的网页渲染器,据我所知,没有这样做的库。然而,有几个命令行工具可以做到这一点(CutyCapt就是一个例子),但他们将写入文件。
至于写入权限,您可能可以写入/tmp
,然后通过PHP进行传递。
我在开发过程中使用CutyCapt。我刚刚介绍了部署到生产时可能遇到的问题。我会看看'/ tmp'是否可用。谢谢! – 2010-11-03 05:11:37
一些注意事项:1,存储到数据库并不意味着它没有写入文件。这只是表示它存储在数据库的文件系统中,可能在磁盘上,而不是标准文件系统中。 2,你是否已经有截图,或者你也在问如何生成它们?对于PHP来说这不太可能,因为PHP不是HTML/CSS渲染器。您通常需要一个浏览器和一个显示器(至少一个虚拟X/VNC显示器)来创建屏幕截图。 – JAL 2010-11-03 04:13:01
@Alex JL:你真的不需要显示器来生成屏幕截图。有些工具会直接渲染图像,毕竟,即使浏览器需要在显示内容之前在内存中生成图像。 – casablanca 2010-11-03 04:18:03
@casablanca这很好,我查看了各种webkit渲染器,但是最后我检查了它们都显得很丑。我必须查看你推荐的那些。我刚刚在Xvfb上启动了一个真正的浏览器,获得了最好的运气。 – JAL 2010-11-03 04:23:49