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