[PHP-] PhantomJS – 自动检测给定高度的页面高度
发布时间:2020-12-13 16:03:49 所属栏目:PHP教程 来源:网络整理
导读:我正在使用 PHP-PhantomJS截取一系列网址.我似乎无法弄清楚如何摆脱没有硬编码截图的高度. 我喜欢设置宽度,并相应地自动检测每页的高度.由于我正在处理一系列URL,因此每个页面的高度都是动态的. 有人有运气吗?我当前的版本如下所示: public function takeS
我正在使用
PHP-PhantomJS截取一系列网址.我似乎无法弄清楚如何摆脱没有硬编码截图的高度.
我喜欢设置宽度,并相应地自动检测每页的高度.由于我正在处理一系列URL,因此每个页面的高度都是动态的. 有人有运气吗?我当前的版本如下所示: public function takeScreenshots($site,$newDir,$dimensions) { $urlHost = parse_url($site)["host"]; $urlPath = isset(parse_url($site)['path']) ? parse_url($site)['path'] : ''; $urlPathName = str_replace("/","",$urlPath); $filepath = $newDir . $urlHost . "_" . $urlPathName . ".jpg"; $client = Client::getInstance(); $client->getEngine()->setPath(base_path().'/bin/phantomjs'); $width = $dimensions["width"]; $height = $dimensions["height"]; $top = 0; $left = 0; $request = $client->getMessageFactory()->createCaptureRequest($site,'GET'); $request->setOutputFile($filepath); $request->setViewportSize($width,$height); $request->setCaptureDimensions($width,$height,$top,$left); $response = $client->getMessageFactory()->createResponse(); $client->send($request,$response); } 解决方法
只需设置视口大小,如果要制作整个页面的屏幕截图,则无需设置捕获尺寸. PhantomJS将使用提供的宽度,并将截图设置为与页面一样高.
在原始的PhantomJS脚本中,您可以通过设置页面的viewportSize属性来完成: page.viewportSize = { width: 1280,height: 1024 }; 在“PHP PhantomJs”库中它几乎是相同的: $request->setViewportSize(1280,1024); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |