正如 Iain Fraser 所说,来自 controlstyle.com 的 Favicon 类并不适用于所有测试用例。
基本上,如果提供,<link>
快捷图标标签可以包含不同的 URL 类型:
- 完整的绝对网址:
http://www.domain.com/images/fav.ico
- 具有相对方案的绝对 URL:
//www.domain.com/images/fav.ico
- 绝对路径:
/images/fav.ico
- 相对网址:
../images/fav.ico
此外,网页可以包含一个<base href="..." />
属性,该属性更改如何处理相对 URL 和绝对路径...
所以我编写了一个适用于所有这些情况的 PHP 类。首先,它尝试从<link>
属性中获取网站图标 URL,并在失败时回退到默认的网站图标 URI (//www.domain.com/favicon.ico)。
您可以在我的网站上获取它:http ://www.finalclap.com/faq/477-php-favicon-find-download或使用 composer 安装它: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";
}
?>