edcs / grabby
使用URL创建网页图像。
Requires
- php: >=5.4.0
- jakoch/phantomjs-installer: 2.1.1-p04
- symfony/process: ^3.0
Requires (Dev)
- phpunit/phpunit: ^5.4
- satooshi/php-coveralls: ^1.0
- squizlabs/php_codesniffer: 2.*
This package is not auto-updated.
Last update: 2021-02-17 09:23:17 UTC
README
A PhantomJS适配器,用于在PHP中生成网页截图。
安装
建议使用Composer安装此库。在安装Grabby之前,请将以下内容添加到您的composer.json
文件中的scripts
命名空间
"scripts": { "post-install-cmd": [ "PhantomInstaller\\Installer::installPhantomJS" ], "post-update-cmd": [ "PhantomInstaller\\Installer::installPhantomJS" ] }
这将确保将正确的PhantomJS二进制文件安装到您的项目目录中。接下来,您需要运行以下命令将Grabby添加到您的项目
$ composer require edcs/grabby
依赖项
Grabby需要PHP版本 >=5.4.0和symfony/process
^3.1。还需要PhantomJS;Grabby将为您下载系统正确的二进制文件。
入门指南
以下代码片段将以最基本的形式运行Grabby,这将生成一个名为grabby.png
的PNG格式的Google首页截图,分辨率为1920x1080px。文件将存储在与Grabby Factory
类相同的目录中。
<?php use Edcs\Grabby\Factory; require 'vendor/autoload.php'; $grabby = new Factory('http://www.google.co.uk'); $grabby->grab();
额外参数
您可能希望将截图存储在不同的位置,并且可能希望以不同的尺寸生成。您可以通过传递一些额外参数给Grabby来实现这一点。以下示例将在分辨率为150x200px的PNG格式下生成一个名为screenshot.jpg
的Google首页截图。文件将存储在/my/storage/dir/
中,如果此目录不存在,则会抛出异常。
<?php use Edcs\Grabby\Factory; require 'vendor/autoload.php'; $grabby = new Factory('http://www.google.co.uk', 'screenshot.png', '/my/storage/dir/', [ 'viewportSize' => [ 'width' => 150, 'height' => 200 ] ]); $grabby->grab();
Grabby还支持以不同的纸张大小创建网页的PDF版本。您可以使用与上面相同的配置来创建使用视口大小的PDF渲染,或者您可以使用以下纸张大小配置
<?php use Edcs\Grabby\Factory; require 'vendor/autoload.php'; $grabby = new Factory('http://www.google.co.uk', 'screenshot.pdf', '/my/storage/dir/', [ 'paperSize' => [ 'format' => 'A4', 'orientation' => 'portrait', 'margin' => '1cm' ] ]); $grabby->grab();
由于Grabby是在PhantomJS之上构建的,您可以使用所有Web Page Module配置选项。如果您需要复杂的配置,可以使用模块选项作为数组键,并使用其属性作为值来构建一个数组。以下示例将创建一个包含Google首页图像的portrait
A4
PDF,页面边距为3cm
,使用名为X-Test
的标题,其值为foo
。
<?php use Edcs\Grabby\Factory; require 'vendor/autoload.php'; $grabby = new Factory('http://www.google.co.uk', 'screenshot.pdf', '/my/storage/dir/', [ 'customHeaders' => [ 'X-Test' => 'foo' ], 'viewportSize' => [ 'width' => 150, 'height' => 200 ], 'paperSize' => [ 'format' => 'A4', 'orientation' => 'portrait', 'margin' => '3cm' ] ]); $grabby->grab();
您可以在以下位置查看Web Page Module文档:http://phantomjs.org/api/webpage/
其他文件格式
您可以使用png
、jpg
或pdf
格式生成截图。只需将文件名属性后缀为这些扩展名之一即可。
访问生成的文件
在运行grab()
生成截图文件后,您可以像这样访问生成的文件名路径
<?php use Edcs\Grabby\Factory; require 'vendor/autoload.php'; $grabby = new Factory('http://www.google.co.uk', 'screenshot.png', '/my/storage/dir/', 150, 200); $file = $grabby->grab()->getScreengrabLocation(); // Returns /my/storage/dir/screenshot.png
或像这样访问文件内容
<?php use Edcs\Grabby\Factory; require 'vendor/autoload.php'; $grabby = new Factory('http://www.google.co.uk', 'screenshot.png', '/my/storage/dir/', 150, 200); $fileContents = $grabby->grab()->getScreengrab(); // Returns the contents of /my/storage/dir/screenshot.png
贡献
请参阅CONTRIBUTING以获取详细信息。
安全漏洞
如果您在此软件包中发现安全漏洞,请发送电子邮件至 edcoleridgesmith@gmail.com。所有安全漏洞都将得到及时处理。