Задача следующая, нужно сделать скриншот сайта по урлу и полученную картинку сохранить в файл или вывести на экран.
Поискав информацию по этой теме, нашел что можно получить скриншот используя сервис гугла, Google PageSpeed Insights API
Получение скриншота сайта через URL.
Выкладываю рабочий код
<?php
// адрес сайта
$url = "https://small-whale.org";
// получение данных с сервиса
$api_data_ = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$url&screenshot=true");
// расшифровка данных json
$api_data = json_decode($api_data_, true);
// данные снимка
$screenshot = $api_data['screenshot']['data'];
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);
// сохраняю полученный снимок в файл
base64_to_file($screenshot, 'screen.jpg');
// отображаем изображение из base64
echo "<img src=\"data:image/jpeg;base64,".$screenshot."\" />";
// функция конвертации base64 в файл
function base64_to_file($base64_string, $output_file) {
// open the output file for writing
$ifp = fopen( $output_file, 'wb' );
// разбиваем строку
// $data[ 0 ] == "data:image/png;base64"
// $data[ 1 ] == <actual base64 string>
$data = explode( ',', $base64_string );
fwrite( $ifp, base64_decode($data[0]) );
// закрываем файл
fclose( $ifp );
return $output_file;
}
?>
как видно из кода, идет получение контента по адресу
https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$url&screenshot=true
где передаются два параметра
url — урл сайта, с которого получить скриншот
screenshot — маркер, который указывает что будет возвращаться скриншот, ставим true
Ответ идет в json формате, среди полученных данных есть тайт сайта, показатели производительности и много другое, к примеру рекомендации по оптимизации CSS.
Данный запрос можно использовать для сбора статистики по сайту, практически там данные с Google Pagespeed по определенному сайту


Удалили сервис вроде.
проверил, да, все верно, на 02.06.2011 сервис не активен
гугл убрал тот сервис и создал новый
док
https://cloud.google.com/service-infrastructure/docs/service-management/reference/rest
ссылка
https://servicemanagement.googleapis.com/$discovery/rest?version=v1
надо смотреть ту инфу, и писать новый код под скрин