【问题标题】:How can I take a screenshot of a page with GD?如何使用 GD 截取页面?
【发布时间】:2019-08-04 17:46:00
【问题描述】:

我正在尝试使用 GD 库截取页面,但结果截屏只返回黑色图像。

<?php
header('Content-type: text/html; charset=windows-1251');
?>

<?php
header("Location:http://10.32.172.30:9080/RTOnline/b/p/115");
$img = imagegrabscreen();
imagepng($img, 'screenshot.png');
?>

【问题讨论】:

  • imagegrabscreen() 捕获运行 PHP 本身的计算机的(桌面)屏幕,而不是 PHP 提供给客户端计算机浏览器的 HTML 页面。
  • 您可以在运行 Php 的计算机上的浏览器中打开网页,然后使用 GD 进行截图。此外,imagegrabscreen 功能仅适用于 windows
  • 设置 HTTP 标头表明您不是从命令行运行 PHP,而是通过 Web 服务器运行。在这种情况下,您很可能使用与 Web 服务器相同的凭据,并且肯定没有打开桌面会话。

标签: php screenshot gd


【解决方案1】:

您可以使用命令行工具截取网页截图。您可以使用 shell_exec 函数在 PHP 中运行该工具。例如wkhtmltopdf命令行工具允许将html转换为pdf等格式。

如果网页包含复杂的 JavaScript 或 Ajax,那么您可以使用无头浏览器来截取屏幕截图。例如参见:Chrome Headless。另请参阅Html2Canvas 脚本。它允许使用 JavaScript 截屏。

另请参阅此问题:Website screenshots

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-04
    • 2013-09-04
    • 2021-07-12
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多