luispabon/favicon-finder

PHP 库,用于从给定的 URL 发现 favicon

1.1.0 2021-11-17 18:18 UTC

This package is auto-updated.

Last update: 2024-09-18 00:27:09 UTC


README

Build status Code coverage

Favicon Finder

一个简单的 PHP 库,用于根据给定的 URL 计算网站的 favicon。

它目前支持查找默认的 favicon(如果存在主机上,例如 /favicon.ico),以及一些基本的 HTML 解析来查找标准 favicon 标签。不支持 apple 类型的图标或清单,尽管在必要时可以扩展以支持这些功能(欢迎 PR)。

此库基于 Arthur Hoaro 的作品

以下是您可以在本版本中看到的更改

  • 当找到时,仅返回 favicon 路径
  • PSR-16:支持简单缓存
  • 更广泛的 HTML 抓取测试
  • PHP 7.3+ 支持

要求

  • PHP 7.3
  • php-xml 扩展:解析 HTML 内容
  • php-curl
  • Guzzle
  • GNU Make(或兼容):这是可选的,如果您想贡献并使用 Makefile 可用的测试目标

安装

composer req luispabon/favicon-finder

基本用法

require_once('vendor/autoload.php');

$guzzle = new \GuzzleHttp\Client();

// You can use any PSR-16 implementation here - if you have none and don't care
// about caching, simply use the provided dummy cache implementation below
$cache = new \FaviconFinder\DummyCache();

// Cache lifetime in seconds (default is 86400 or 1 day)
$ttl = 60;

$favicon = new \FaviconFinder\Favicon($guzzle, $cache, $ttl);

echo $favicon->get('https://github.com/luispabon/favicon-finder');

// Displays: https://github.com/favicon.ico
var_dump($favicon->get('http://nofavicon.tld'));
// Returns null

贡献

将该仓库 Fork,做您的任务,发送 PR。测试是强制性的

  • PHP 单元覆盖率必须为 100%
  • Infection MSI 必须为 100%
  • PHPStan 必须显示无错误

提供的 Makefile 包含所有基本测试目标,并在 CI 中使用。