Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar halaman web ke dalam format imej dalam php

Bagaimana untuk menukar halaman web ke dalam format imej dalam php

藏色散人
藏色散人asal
2021-11-12 09:30:054637semak imbas

Cara menukar halaman web kepada format imej dengan PHP: 1. Pasang chrome-php/chrome 2. Pasang chromium 3. Laksanakan logik penukaran melalui pengawal.

Bagaimana untuk menukar halaman web ke dalam format imej dalam php

Bagaimana untuk menukar halaman web kepada format imej dalam php?

PHP menukarkan keseluruhan html halaman web kepada imej dan menyimpannya [termasuk menatal]

1 Pasang chrome-php/chrome

composer require chrome-php/chrome

2 . Pasang kromium (Auto Baidu)

Chromium ialah penyemak imbas web yang dibangunkan oleh Google. Dikeluarkan di bawah pelbagai hak cipta percuma seperti lesen BSD dan kod sumber terbuka, pembangunan Chromium mungkin telah bermula seawal tahun 2006. Chromium ialah enjin di sebalik penyemak imbas Chrome Google dan tujuannya adalah untuk mencipta penyemak imbas universal yang selamat, stabil dan pantas.

3. Logik pelaksanaan Pengawal (rangka kerja 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();

    }

}

Jika halaman mempunyai terlalu banyak interaksi, ia perlu dilaraskan mengikut situasi sebenar.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menukar halaman web ke dalam format imej dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn