😎 » PHP - FAQ » Основы PHP8 » Як на PHP створювати скріншоти сайтів?
3 0  

Як на PHP створювати скріншоти сайтів?

fellow А PHP таки вміє створювати скріншоти сайтів - правда тільки локально, тому що є можливість підключатись до Вашого браузера.

І найголовніше це кількість коду який потрібно написати! А не потрібно нічого все вже готово під капотом!
Ось мій зразок для тестування:

<?php
header('Content-Type: text/html; charset=utf-8');

// 1. ПЕРЕВІРКА ШЛЯХУ (Спробуйте обидва варіанти, якщо один не підходить)
$chromePath = 'C:\Program Files\Google\Chrome\Application\chrome.exe';
// $chromePath = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'; 

echo "<h3>Діагностика оточення:</h3>";

// Перевірка 1: Чи існує файл Chrome
if (file_exists($chromePath)) {
    echo "✅ Chrome знайдено за шляхом: $chromePath <br>";
} else {
    echo "❌ <b>Помилка:</b> Chrome НЕ знайдено. Перевірте шлях! <br>";
}

// Перевірка 2: Чи дозволено запис у поточну папку
if (is_writable(__DIR__)) {
    echo "✅ Папка доступна для запису. <br>";
} else {
    echo "❌ <b>Помилка:</b> PHP не має прав на запис у " . __DIR__ . "<br>";
}

// Перевірка 3: Чи увімкнена функція exec
if (function_exists('exec')) {
    echo "✅ Функція exec() доступна. <br>";
} else {
    echo "❌ <b>Помилка:</b> exec() заблокована в php.ini (disable_functions). <br>";
}

echo "<hr>";

// 2. ЗАПУСК ТЕСТУ
$url = 'https://lyuboshchi.com.ua/';

$outputImage = str_replace('\\', '/', __DIR__) . '/test_screenshot.png';

// Додаємо бюджет часу та відключаємо перевірку сертифікатів (про всяк випадок)
$command = "\"$chromePath\" "
    . "--headless=new " // Новий режим headless (більш стабільний)
    . "--disable-gpu "
    . "--no-sandbox "
	. "--incognito " // Не зберігаємо куки та кеш
    . "--run-all-compositor-stages-before-draw "
    . "--virtual-time-budget=5000 " // Чекаємо завантаження JS/ресурсів
    . "--hide-scrollbars "
    . "--ignore-certificate-errors "
    . "--screenshot=\"$outputImage\" "
    . "--window-size=1480,1080 "
	. "--user-agent=\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36\" "
	. "--lang=uk-UA "
    . "\"$url\" 2>&1";

echo "<b>Запуск оновленої команди...</b><br>";
exec($command, $output, $returnCode);

// Обов'язково очищуємо кеш стану файлів, щоб PHP побачив новий файл відразу
clearstatcache();

if (file_exists($outputImage)) {
    echo "<h3>УРА! Файл створено!</h3>";
    echo "<img src='test_screenshot.png?t=" . time() . "' style='width:100%; border:2px solid red;'>";
} else {
    echo "<h3>Файлу все ще немає :(</h3>";
    echo "Спробуйте відкрити папку <b>C:\OSPanel\home\ticapack.local\</b> вручну. Чи є там файл?";
}

?>

winked На локалці працює просто бомба....



Залишити свій коментар:

Досвід у веброзробці:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2009
2026