google api — как сделать скриншот страницы с помощью PHP?

Мне нужно сделать скриншот страницы. Я могу сделать скриншот страницы, используя 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&скриншот = 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."\" />";
?>

-2

Решение

"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";
3

Другие решения

Попытка следующего 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
1

По вопросам рекламы [email protected]