我知道没有直接的方法可以用 PHP 截取网页的屏幕截图。实现此目的最直接的方法是什么?是否有任何命令行工具可以做到这一点,我可以从 PHP 脚本执行(我在想一些可以在'NIX OS(特别是 OS X 和/或 Linux)中运行的东西)?
编辑:或者我可以通过 SOAP 或 REST 访问的某种 Web 服务或......
编辑#2:我发现了一个讨论 CLI 选项的相关问题,但如果有人知道任何事情,我仍然愿意接受其他方法。
我知道没有直接的方法可以用 PHP 截取网页的屏幕截图。实现此目的最直接的方法是什么?是否有任何命令行工具可以做到这一点,我可以从 PHP 脚本执行(我在想一些可以在'NIX OS(特别是 OS X 和/或 Linux)中运行的东西)?
编辑:或者我可以通过 SOAP 或 REST 访问的某种 Web 服务或......
编辑#2:我发现了一个讨论 CLI 选项的相关问题,但如果有人知道任何事情,我仍然愿意接受其他方法。
html2ps在相对简单的页面上做得不错,而且它对外部二进制文件的需求很少,这意味着它非常易于安装/使用。如果您控制要捕获的页面,则可以确保它们在 html2ps 中正确呈现。但是,如果您希望捕获任意 URL,我不确定 HTML2PS 的 PHP 端口是否能胜任这项任务。它也不是世界上最快的东西(复杂页面的渲染时间预计在几秒钟内),但这对于某些应用程序来说并不重要。
有关执行此操作的 OSX 命令行程序,请参阅webkit2png 。
该页面还提到了 Linux 替代方案。
[编辑]:wkhtml2image是镇上最新的孩子,它比我用过的其他任何东西都好用。
[edit2]:截至 2014 年,PhantomJS似乎是要走的路,因为它拥有我所知道的替代方案的最新 webkit 版本。
[edit3]:在 2019 年,Puppeteer是要走的路。官方无头镀铬,始终保持最新。
不确定这对你来说是否足够,因为它在那里添加了一些东西,但值得一试:http ://www.snap.com
您可以使用 GD 功能imagegrabscreen()
或imagegrabwindow()
截屏,但它们目前仅在 Windows 上可用。
可以使用 Google pagespeed api 获取网站的 base64 编码图像。您可以指定桌面或移动视图,但仅限于特定大小的图像。