文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php 怎么把网页转换成图片格式

2021-12-23 00:26

关注

php 怎么把网页转换成图片格式?

PHP将整个网页html转换为图片并保存【含滚屏】

安装chrome-php/chrome

composer require chrome-php/chrome

chromium安装(自行百度)

Chromium是由Google主导开发的网页浏览器。以BSD许可证等多重自由版权发行并开放源代码,Chromium的开发可能早自2006年即开始。Chromium 是 Google 的Chrome浏览器背后的引擎,其目的是为了创建一个安全、稳定和快速的通用浏览器。

控制器实现逻辑(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('/Applications/Chromium.app/Contents/MacOS/chromium');
        // 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();

    }

}

如果页面有过多的交互,需根据实际情况调整。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯