php 怎么把网页转换成图片格式?
php将整个网页html转换为图片并保存【含滚屏】
1、安装chrome-php/chrome
composer require chrome-php/chrome
2、chromium安装(自行百度)
chromium是由google主导开发的网页浏览器。以bsd许可证等多重自由版权发行并开放源代码,chromium的开发可能早自2006年即开始。chromium 是 google 的chrome浏览器背后的引擎,其目的是为了创建一个安全、稳定和快速的通用浏览器。
3、控制器实现逻辑(laravel框架)
<?phpnamespace 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(); }}
如果页面有过多的交互,需根据实际情况调整。推荐学习:《php视频教程》
以上就是php 怎么把网页转换成图片格式的详细内容。
