PHP API 获取网站图标并缓存:优先获取高清图标

本 API 使用 PHP 编写,可根据提供的 URL 获取网站图标,并优先获取高清图标。同时,API 会将获取的图标缓存至本地,以提高访问速度。

API 代码:

function get_icon($url) {
    $cache_dir = 'cache/'; // 缓存目录
    $cache_time = 86400; // 缓存时间,单位为秒(1天)
    $url_md5 = md5($url); // 将URL进行MD5加密,作为缓存文件名
    $cache_file = $cache_dir . $url_md5 . '.ico'; // 缓存文件的完整路径

    // 如果缓存文件存在,且未过期,则直接输出缓存文件
    if (file_exists($cache_file) && time() - filemtime($cache_file) < $cache_time) {
        header('Content-Type: image/x-icon');
        readfile($cache_file);
        exit();
    }

    // 尝试获取高清icon
    $icon_url = 'https://www.google.com/s2/favicons?sz=192&domain=' . $url;
    $icon_data = file_get_contents($icon_url);

    // 如果获取失败,则尝试获取普通icon
    if ($icon_data === false) {
        $icon_url = 'https://www.google.com/s2/favicons?domain=' . $url;
        $icon_data = file_get_contents($icon_url);
    }

    // 如果获取成功,则将图片缓存至本地,并输出图片
    if ($icon_data !== false) {
        file_put_contents($cache_file, $icon_data);
        header('Content-Type: image/x-icon');
        echo $icon_data;
        exit();
    }

    // 如果获取失败,则输出默认图片
    header('Content-Type: image/x-icon');
    readfile('default.ico');
    exit();
}

// 使用示例
$url = $_GET['url'];
get_icon($url);

使用方法:

  1. 将代码保存为 get_icon.php 文件。
  2. 在浏览器地址栏中输入 http://your-domain.com/get_icon.php?url=www.example.com,其中 www.example.com 为您要获取图标的网站地址。
  3. API 将会返回网站的图标。

API 功能:

  • 优先获取高清图标: API 会优先尝试获取 192x192 像素的高清图标。
  • 缓存至本地: 获取到的图标将会缓存至本地,下次访问相同网站的图标时,将会直接从缓存中读取,提高访问速度。
  • 默认图标: 如果获取图标失败,API 将会返回一个默认的图标。

注意:

  • cache/ 目录需要手动创建。
  • default.ico 文件需要手动放置在与 get_icon.php 相同的目录下。
  • 本 API 使用 Google Favicons API 获取图标,请确保您了解 Google Favicons API 的使用条款。
PHP API 获取网站图标并缓存:优先获取高清图标

原文地址: https://www.cveoy.top/t/topic/nVA2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录