ホームページ  >  記事  >  バックエンド開発  >  PHPでWebページを画像形式に変換する方法

PHPでWebページを画像形式に変換する方法

藏色散人
藏色散人オリジナル
2021-11-12 09:30:054626ブラウズ

php で Web ページを画像形式に変換する方法: 1. chrome-php/chrome をインストールします; 2. chrome をインストールします; 3. コントローラーを介して変換ロジックを実装します。

PHPでWebページを画像形式に変換する方法

#php Web ページを画像形式に変換するにはどうすればよいですか?

PHP は Web ページの HTML 全体を画像に変換し、保存します (スクロールを含む)

1. chrome-php/chrome

composer require chrome-php/chrome
2. インストールします。 chromium (自己インストール) Baidu)

Chromium は、Google によって開発された Web ブラウザです。 BSD ライセンスやオープン ソース コードなど、複数の無償著作権のもとでリリースされている Chromium の開発は、2006 年にはすでに開始されていた可能性があります。 Chromium は Google の Chrome ブラウザの背後にあるエンジンであり、その目的は安​​全で安定した高速なユニバーサル ブラウザを作成することです。

3. コントローラー実装ロジック (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();

    }

}
ページ内にインタラクションが多すぎる場合は、実際の状況に応じて調整する必要があります。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPでWebページを画像形式に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。