对于任何给定的站点"的例子。域。顶级域名"或者仅仅是"领域。顶级域名"我需要做到以下PHP:

  • 如果该网站有一个图标,那就无论何处
    • 如果它是不是已经PNG,将其转换为PNG
    • 保存/图标/例子。域。顶级域名。png
  • 如果该网站有没有图标,就什么也不做。

任何想法?我被难住了由不可靠的文件格式和位置的图标,但是如果可能的话我希望避免下载整个来源,该网页与file_get_contents为了找到它的标题。还转换为png似乎是平凡的.

谢谢,

麻辣烫

有帮助吗?

解决方案

作为是典型的,我找到了一个差强人意的解决方案不久之后要求的问题-让谷歌做为你工作:

http://www.google.com/s2/favicons?domain=URL

返回的16×16png

其他提示

找到这个: 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然后不知怎的,载图标。

如果图标不是在图标。ico我猜你有分析HTML。

该文件类型的检测,可以使用 这种扩展, ,其中检测到的文件类型,通过使用魔字节。

你可以转换为PNG通过使用GD library一例可以找到 在这里,.

如果你PHP安装包括GD library,你可以把图像PNG使用 imagepng 功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top