hugsbrugs / php-screenshot
此包最新版本(dev-master)没有提供许可证信息。
PHP 截图工具
dev-master
2020-01-06 15:21 UTC
Requires
- hugsbrugs/php-filesystem: dev-master
- hugsbrugs/php-http: dev-master
This package is auto-updated.
Last update: 2024-09-07 02:01:07 UTC
README
此库提供了工具函数,以简化使用不同提供商生成截图,以便在第一个提供商无法生成截图时始终有一个回退。
注意
目前有 3 个提供商可用: Manet Apercite PagePeeker
欢迎您建议其他提供商。
安装
使用 composer 安装包
composer require hugsbrugs/php-screenshot
在您的 PHP 代码中加载库
require_once __DIR__ . '/../vendor/autoload.php'; use Hug\Screenshot\Screenshot as Screenshot;
您首先需要定义 3 个常量
define('HUG_SCREENSHOT_SAVE_PATH', '/path/to/screenshots/'); define('HUG_SCREENSHOT_PROVIDERS', '/path/to/providers.json'); define('HUG_SCREENSHOT_CACHE', 'P1W');
HUG_SCREENSHOT_SAVE_PATH 应该可由 web 服务器用户写入
HUG_SCREENSHOT_PROVIDERS 是一个如下的 json 文件
{ "1": { "provider":"Manet", "basic_auth_user":"USERNAME", "basic_auth_pass":"PASSWORD", "scheme":"http OR https", "host":"HOSTNAME_OR_IP", "port":"PORT", "params":{ "engine":"slimerjs|phantomjs", "format":"jpg|png|gif", "width":"1024", "delay":"3000", "quality":"0.9" } }, "2":{ "provider":"Apercite" }, "3":{ "provider":"PagePeeker", "code":"YOUR_CODE", "entrypoint":"free", "size":"x", "refresh":"", "wait":"" } }
请参阅每个提供商的文档以获取选项详细信息。
用法
$Screenshot = new Screenshot(); $url = 'https://hugo.maugey.fr'; $widths = ['1024', '768', '480']; $screenshot = $Screenshot->shot($url, $widths); error_log(print_r($screenshot, true));
输出示例
[status] => success [message] => [images] => Array ( [1024] => hugo.maugey.fr-1024xauto-1492020456.jpg [768] => hugo.maugey.fr-768xauto-1492020467.jpg [480] => hugo.maugey.fr-480xauto-1492020475.jpg ) [details] => Array
截图文件名按照以下约定生成
- URL
- 宽度 x 高度
- 时间戳
单元测试
phpunit --bootstrap vendor/autoload.php tests
作者
Hugo Maugey 访问我的网站 ;)