Maison > développement back-end > Problème PHP > Comment convertir des pages Web au format image en php

Comment convertir des pages Web au format image en php

藏色散人
Libérer: 2023-03-13 19:58:01
original
4649 Les gens l'ont consulté

Comment convertir des pages Web en formats d'image avec PHP : 1. Installez chrome-php/chrome ; 2. Installez chrome ; 3. Implémentez la logique de conversion via le contrôleur.

Comment convertir des pages Web au format image en php

php Comment convertir des pages web au format image ?

PHP convertit l'intégralité de la page Web html en une image et l'enregistre [y compris le défilement]

1 Installez chrome-php/chrome

composer require chrome-php/chrome
Copier après la connexion

2 Installez Chrome (auto-Baidu)

Chromium est un navigateur Web. développé par l'appareil Google. Publié sous plusieurs droits d'auteur libres tels que la licence BSD et le code open source, le développement de Chromium a peut-être commencé dès 2006. Chromium est le moteur du navigateur Chrome de Google et son objectif est de créer un navigateur universel sécurisé, stable et rapide.

3. Logique d'implémentation du contrôleur (framework laravel)

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use HeadlessChromium\BrowserFactory;

// 测试控制器
class TestController extends Controller
{

    public function index()
    {

        // chromium浏览器引擎位置(Mac系统,根据不同系统设置安装)
        $browserFactory = new BrowserFactory(&#39;/Applications/Chromium.app/Contents/MacOS/chromium&#39;);
        // starts headless chrome
        $browser = $browserFactory->createBrowser();

        // creates a new page and navigate to an url
        $page = $browser->createPage();

        // 自动化访问网页
        $url = 'https://www.jianshu.com';
        $page->navigate($url)->waitForNavigation();

        // 获取浏览器滚动条宽高,用于设置:setViewport
        $evaluation = $page->callFunction(
            'function() {
                var width = document.body.scrollWidth;
                var height = document.body.scrollHeight;
                return [width,height];
             }'
        );

        $value  = $evaluation->getReturnValue();
        $width  = $value[0];
        $height = $value[1];
        $page->setViewport($width, $height)->await(); // wait for operation to complete

        // take the screenshot (in memory binaries)
        // 这里如果截取的图片过大,需要设置超时时间或者调整图片质量
        $screenshot = $page->screenshot([
            'format'  => 'jpeg', // default to 'png' - possible values: 'png', 'jpeg',
            'quality' => 100, // only if format is 'jpeg' - default 100
        ]);

        $screenshot->saveToFile(storage_path('/app/example.png'));

        // 关闭浏览器
        $browser->close();

    }

}
Copier après la connexion

Si la page a trop d'interactions, elle doit être ajustée en fonction de la situation réelle.

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal