PHP API 获取网站图标并缓存:优先获取高清图标
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);
使用方法:
- 将代码保存为
get_icon.php文件。 - 在浏览器地址栏中输入
http://your-domain.com/get_icon.php?url=www.example.com,其中www.example.com为您要获取图标的网站地址。 - API 将会返回网站的图标。
API 功能:
- 优先获取高清图标: API 会优先尝试获取 192x192 像素的高清图标。
- 缓存至本地: 获取到的图标将会缓存至本地,下次访问相同网站的图标时,将会直接从缓存中读取,提高访问速度。
- 默认图标: 如果获取图标失败,API 将会返回一个默认的图标。
注意:
cache/目录需要手动创建。default.ico文件需要手动放置在与get_icon.php相同的目录下。- 本 API 使用 Google Favicons API 获取图标,请确保您了解 Google Favicons API 的使用条款。
原文地址: https://www.cveoy.top/t/topic/nVA2 著作权归作者所有。请勿转载和采集!