Задача следующая, нужно сделать скриншот сайта по урлу и полученную картинку сохранить в файл или вывести на экран.
Поискав информацию по этой теме, нашел что можно получить скриншот используя сервис гугла, 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
надо смотреть ту инфу, и писать новый код под скрин