查看网站图标跨域

时间:2013-03-12 02:35:59

标签: php gd favicon

我希望非常快速地寻求帮助,我希望它能够起作用。如果需要,我很乐意使用GD。

我的用户将在内部Intranet中使用他们的帐户登录作为他们的主页,我们将允许他们自定义一些收藏夹,以便无论他们使用什么站点都可以更轻松地访问他们的页面。

这样做不是问题,但我感兴趣的是为每个显示图标(使用每个网站的图标)以及每个图标上的自定义文本生成按钮。

我使用过谷歌并没有真正发现任何人甚至要求在firefox和Internet Explorer故障排除标签之外执行此操作。我希望它很简单,更不用说可能了。如果没有,我为浪费你的时间而道歉。

一如既往地谢谢你们!

2 个答案:

答案 0 :(得分:1)

Favicons定义为两种方式之一,即favicon.ico的存在或索引页面上元标记内的规范。

首先,只需抓住favicon.ico:

$icon = file_get_contents('http://www.google.com/favicon.ico');
file_put_contents('/some/local/path/google-favicon.ico',$icon);

如果显示404(file_get_contents返回false,或$ icon为false),那么您可以执行以下操作:

$content = file_get_contents('http://www.quotes.uk.com/');
preg_match_all('/<link.*rel="icon".*href="([^"]+)"/i',$content,$out);
$icon = file_get_contents($out[1][0]);
file_put_contents('/some/local/path/quotesuk-favicon.png',$icon);

所以我的例子是简化的方法。更进一步:

  • 验证结果是否正常(逻辑)
  • 利用mime-type,一些favicons是PNG;你可以使用cURL来捕获标题,如果启用了mime魔法,你可以使用mime_content_type(如果可用的话,{errr fileinfo
  • 在此处查看更多包含favicon的方式:http://www.quotes.uk.com/web-design/meta-tags.php(“Favicon元标记”一节)
  • 考虑加强我的正则表达式,或完全使用其他方法(SimpleXML?),因为它没有考虑属性的顺序(可能会有所不同)
  • 不要将您的代码编写为我的代码

答案 1 :(得分:0)

进一步看,它似乎并不像我想的那么简单,尽管我宁愿在本地缓存它。到目前为止,我找到的解决方案是使用谷歌的以下服务,如果有人有更好的解决方案,请告诉我,因为这不是我想解决问题的方式。谢谢!

http://www.google.com/s2/u/0/favicons?domain=www.stackoverflow.com