edcs/grabby

此软件包已被废弃,不再维护。未建议替代软件包。

使用URL创建网页图像。

v1.0.1 2016-07-05 17:26 UTC

This package is not auto-updated.

Last update: 2021-02-17 09:23:17 UTC


README

Codeship Status for edcs/grabby Total Downloads Latest Stable Version License Coverage Status SensioLabsInsight

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/

其他文件格式

您可以使用pngjpgpdf格式生成截图。只需将文件名属性后缀为这些扩展名之一即可。

访问生成的文件

在运行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。所有安全漏洞都将得到及时处理。