PHP API 获取网站 Favicon 并缓存至本地
// 设置缓存目录
$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;
}
原文地址: https://www.cveoy.top/t/topic/nVA6 著作权归作者所有。请勿转载和采集!