Дуже часто піднімаються питання як за допомогою PHP зробити скріншот сайтів, дуже багато було обговорень на цю тему, я хочу все ж підсумувати всі ці дискусії і привести його до який використовую я.
Отже перше і найголовніше - засобами PHP робити скріншоти сайтів не можна!
Зробити скріншоти можна за допомогою різних сервісів, їх дуже багато, але ось хороших які роблять скріншоти в ріалтайм не так вже й багато, а тим більше таких де самому можна вказати розмір скріншоту.
і зараз крок за кроком поясню як працювати з їх сервісом, на сайті все зрозуміло розписано, але не всі розуміють англійською
Отже для початку йдемо по посиланню
і реєструємося, необхідно вбити свій логін, емеіл і урл сайту з якого будуть йти запити на створення скріншотів.
Після цього на вказаний емеіл приходить лист з посиланням для підтвердження реєстрації, після переходу по ній вам прийде ще один лист, в якому розповідається як використовувати даний API і ваш персональний User ID і Secret Key.
Що б не ходити коло та навколо, ось приклад роботи з їх API
Тепер далі, в прикладі я вставляю скріншот прямо з їх сайту, передаємо потрібні змінні їх скрипту, крім вищеописаних ви бачите ще h і w, що є висотою і шириною скриншота, який повертає нам сервіс (дані параметри не є обов'язковими, якщо їх не вказати то сервіс автоматично сформує розмір, який вважатиме за потрібне)
А ось ще кілька необов'язкових параметрів, які я не використовував, але які можуть деяким нагоді
q - якість повертається jpeg скриншота. можна задати значення в межах від 30 і до 90
d - затримка перед створенням скріншота
sdx - ширина віртуального екрану з якого буде зроблений скріншот, ну або як це правильно обізвати (дозвіл монітора під яким робиться скріншот) Може приймати значення 640, 800, 1024, 1280
sdy - Теж саме тільки висота.
Знову ж правильним підходом буде збереження даних скріншотів собі на сайт, і подальше використання вже зі свого сервера, ну це вже особиста справа кожного. Я думаю що досить зрозуміло пояснив як використовувати даний сервіс, якщо у кого то залишилися питання, то я постараюся на них відповісти