PHP-得到一个网站的图标,并将其转换为png如果有必要
-
16-09-2019 - |
题
对于任何给定的站点"的例子。域。顶级域名"或者仅仅是"领域。顶级域名"我需要做到以下PHP:
- 如果该网站有一个图标,那就无论何处
- 如果它是不是已经PNG,将其转换为PNG
- 保存/图标/例子。域。顶级域名。png
- 如果该网站有没有图标,就什么也不做。
任何想法?我被难住了由不可靠的文件格式和位置的图标,但是如果可能的话我希望避免下载整个来源,该网页与file_get_contents为了找到它的标题。还转换为png似乎是平凡的.
谢谢,
麻辣烫
解决方案
其他提示
找到这个: http://www.controlstyle.com/articles/programming/text/php-favicon/
我要试试我的项目,我会回报告,并告诉你,如果它的工作!
欢呼
Iain
正如伊恩*弗雷泽所述,图标类controlstyle.com 不适用于所有的测试情况。
基本上,如果提供的话, <link>
快捷方式标签可以包含不同的URL种类型:
- 全absolute URL:
http://www.domain.com/images/fav.ico
- 绝对网址的相对方案:
//www.domain.com/images/fav.ico
- 绝对路径:
/images/fav.ico
- 相对URL:
../images/fav.ico
此外,该网页可以包含一个 <base href="..." />
属性变化如何处理相关的URL和absoute路...
因此,我已经写了一个PHP类,适用于所有这些情况。第一,它试图获得的图标网址 <link>
属性,并回退到默认的图标URI(//www.domain.com/favicon.ico)在失败的情况。
你可以抓住它在我的网站在这里: http://www.finalclap.com/faq/477-php-favicon-find-download 或者安装使用作曲家: composer require vincepare/favicon-downloader
.
如何使用:
<?php
require 'FaviconDownloader.class.php';
$favicon = new FaviconDownloader('http://stackoverflow.com/questions/19503326/bug-with-chrome-tabs-create-in-a-loop');
if($favicon->icoExists){
echo "Favicon found : ".$favicon->icoUrl."\n";
// Saving favicon to file
$filename = 'favicon-'.time().'.'.$favicon->icoType;
file_put_contents($filename, $favicon->icoData);
echo "Saved to ".$filename."\n\n";
} else {
echo "No favicon for ".$favicon->url."\n\n";
}
?>
转换到巴布亚新几内亚并不难。
我不会问题完全是这一喜欢的图标上你的网站或在其他地点?如果在其他地点,则将必须分析取HTML然后不知怎的,载图标。
如果你PHP安装包括GD library,你可以把图像PNG使用 imagepng 功能。