【问题标题】:How to take the screenshot of the page using PHP?如何使用 PHP 截取页面截图?
【发布时间】:2017-11-06 12:42:35
【问题描述】:

我需要截取页面截图。我可以使用 Google API 截取页面的屏幕截图。

如果我输入URL=mydomain.com/,那么它可以工作,但如果我使用URL=mydomain.com/new/index/6,那么我会收到错误

警告:file_get_contents(www.googleapis.com/pagespeedonline/v2/runPagespeed?url=mydomain.com/new/index/6&screenshot=true):打开流失败:HTTP 请求失败!

中的 HTTP/1.0 400 错误请求

你能帮我解决这个问题吗?

<?php 
//website url
$siteURL = "mydomain.com/new/index/6";
//call Google PageSpeed Insights API
$googlePagespeedData = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$siteURL&screenshot=true");
//decode json data
$googlePagespeedData = json_decode($googlePagespeedData, true);

//screenshot data
$screenshot = $googlePagespeedData['screenshot']['data'];
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot); 

//display screenshot image
echo "<img src=\"data:image/jpeg;base64,".$screenshot."\" />";
 ?>

【问题讨论】:

  • 查看公共区域后的所有权限
  • 您可能还需要在尾部添加斜杠 $siteURL = "mydomain.com/new/index/6/"; 尝试一下,并确保该文件夹中有索引文件。
  • 您似乎正在将您的网址连接到 Google 网址。尝试使用urlencode($siteURL)
  • @Fred-ii- 我尝试了斜杠但同样的问题
  • @timclutton,我也试过了,但是问题

标签: php google-api screenshot


【解决方案1】:
"message": "Invalid value 'mydomain.com/new/index/6'. Values must match the following regular expression: '(?i)http(s)?://.*'",

只需尝试在 $siteURL

中添加协议

类似这样的:

$siteURL = "https://stackoverflow.com/questions/47137304/how-to-take-the-screenshot-of-the-page-using-php";

【讨论】:

  • 呸,忍者! :)
  • @NarendraVerma 所以,请检查“mydomain.com/new/index.php/6”是否是具有 200 StatusCode 的有效 URL,没有重定向等。
  • 我在这个 URL mydomain.com/new/index.php/6 中有一个 pdf 文件。如果我直接输入此 URL,则显示 pdf
  • @dekameron,我应该在哪里检查?
【解决方案2】:

在浏览器中尝试以下 URL 会给出明确的错误消息:

https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=example.com/test/test&screenshot=true

“example.com/test/test”值无效。值必须与以下正则表达式匹配:'(?i)http(s)?://.*'

更改 URL 以包含协议可解决问题:

https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=http://example.com/test/test&screenshot=true

【讨论】:

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