// 设置缓存目录
$cache_dir = 'icons-cache/';

// 获取 URL 参数
$url = $_GET['url'];

// 根据 URL 获取域名
$domain = parse_url($url, PHP_URL_HOST);

// 构造 icon URL
$icon_url = 'https://www.google.com/s2/favicons?domain=' . $domain;

// 构造缓存文件名
$cache_file = $cache_dir . md5($url) . '.ico';

// 判断是否有缓存,有则直接输出
if (file_exists($cache_file)) {
    header('Content-Type: image/x-icon');
    readfile($cache_file);
} else {
    // 没有缓存则从 icon URL 获取 icon,并缓存至本地
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $icon_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $icon = curl_exec($ch);
    curl_close($ch);

    if ($icon) {
        if (!file_exists($cache_dir)) {
            mkdir($cache_dir);
        }
        file_put_contents($cache_file, $icon);
    }

    // 输出 icon
    header('Content-Type: image/x-icon');
    echo $icon;
}
PHP API 获取网站 Favicon 并缓存至本地

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

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