gtarr/webp-parse-and-convert
Composer 安装命令:
composer require gtarr/webp-parse-and-convert
包简介
README 文档
README
Парсинг HTML страницы и конвертирование изображений в WebP через библиотеку WebP Convert.
Проверка возможности конвертирования в WebP на сервере
var_dump(function_exists('imagewebp')); // bool(true) - можно
Если на сервере нет Imagick, то конвертирование работать будет, но качество получившегося изображения не будет соответствовать качеству оригинального изображения (установится в 75 для jpg и 85 для png).
Если поддержки нет, то можно воспользоваться данным способом
Установка через Composer
composer require gtarr/webp-parse-and-convert
Установка без Composer
Скачать отсюда и загрузить папку vendor на сайт
Использование
- По умолчанию
$content = '<html>...<img src="">...</html>'; // HTML страницы $rootDir = $_SERVER['DOCUMENT_ROOT']; // корень сайта require $rootDir . '/vendor/autoload.php'; use WebPParseAndConvert\WebPParseAndConvert; $converter = new WebPParseAndConvert($content); $content = $converter->execute();
- C доп. опциями (в примере представлены значения по умолчанию)
$rootDir = $_SERVER['DOCUMENT_ROOT']; $options = [ "formats" => ['jpg', 'jpeg', 'png'], "patterns" => [ [ 'pattern' => '/<img[^>]+src=("[^"]*")[^>]*>/i', 'exclude' => ['"', './'] ], [ 'pattern' => '/background-image:.+url\(([^"]+)\)/i', 'exclude' => ["'", "./"] ], ], "devices" => ['iphone', 'ipod', 'ipad', 'macintosh', 'mac os', 'Edge', 'MSIE', 'Trident'], "converterOptions" => [], "debug" => false, "useApi" => false, "api" => [] ]; $converter = new WebPParseAndConvert($content, $rootDir, $options);
Опции
| Опция | Тип | Описание |
|---|---|---|
| 'formats' | Array | Форматы изображений, которые будут найдены на странице и конвертированы в webp |
| 'patterns' | Array | Регулярные выражения, по которым будет производиться поиск, имеет 2 параметра: |
| 'patterns' => [['pattern' => '...']] | String | 1. Само регулярное выражение |
| 'patterns' => [['exclude' => []]] | Array | 2. Подстроки, которые нужно исключить из обработки после нахождения строки по регулярному выражению, например, кавычки. В исключение также автоматически добавляется адрес сайта с протоколом для обработки абсолютных путей изображений. |
| 'devices' | Array | Список устройств, для которых по User-agent будут выводиться оригинальные изображения в форматах jpg, jpeg, png |
| 'converterOptions' | Array | Опции, передаваемые в вызов WebPConvert::convert() библиотеки WebP Convert |
| 'debug' | Boolean | Использование встроенного логгера библиотеки WebP Convert |
| 'useApi' | Boolean | Использования для конвертирования внешнего сервиса основанного на webp-convert-cloud-service |
| 'api' | Array | Параметры для подключения к внешнему сервису |
| 'api' => ['key' => '...'] | String | API ключ внешнего облачного сервиса |
| 'api' => ['url' => '...'] | String | URL внешнего облачного сервиса |
Решение проблем
При ошибке PNG file skipped. GD is configured not to convert PNGs необходимо отключить обработку PNG изображений, для этого нужно в опцию 'formats' передать только ['jpg', 'jpeg'].
С версии 0.1.0 это исключение перехватывается
Примеры для CMS
Если нет поддержки WebP на сервере сайта
Можно использовать cоздать на другом сервере, на котором есть поддержка конвертирования в WebP, облачный сервис webp-convert-cloud-service и обращаться к нему по API. Для работы такого варианта необходимо в $options передать два параметра useApi и api:
$options = array( 'useApi' => true, 'api' => array( 'key' => 'some API key', 'url' => 'http://example.com/wpc.php' ) );
Использовать данный способ на постоянной основе на сайте с динамически обновляемой информацией не рекомендуется в виду достаточно долгих операций отправки/получения изображений через cURL.
gtarr/webp-parse-and-convert 适用场景与选型建议
gtarr/webp-parse-and-convert 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 69 次下载、GitHub Stars 达 3, 最近一次更新时间为 2019 年 05 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 gtarr/webp-parse-and-convert 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 gtarr/webp-parse-and-convert 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 69
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2019-05-30