-1

我有一个希望非常快速的帮助请求,我希望它甚至会起作用。如果需要,我很乐意使用 GD。

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

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

我用过谷歌,甚至没有发现有人要求在 Firefox 和 Internet Explorer 故障排除的选项卡之外执行此操作。我希望它很容易,更不用说可能了。如果没有,我为浪费您的时间而道歉。

一如既往地感谢你们!

4

2 回答 2

1

Favicon 被定义为两种方式之一,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,一些 favicon 是 PNG;您可以使用 cURL 来捕获标题,或者mime_content_type如果启用了 mime 魔法来猜测(fileinfo如果可用,则错误)
  • 在此处查看更多包含网站图标的方法:http : //www.quotes.uk.com/web-design/meta-tags.php(“网站图标元标记”部分)
  • 考虑加强我的正则表达式,或完全使用另一种方法(SimpleXML?),因为它没有考虑属性的顺序(可能会有所不同)
  • 不要像我的那样写你的代码
于 2013-03-12T03:24:43.993 回答
0

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

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

于 2013-03-12T03:06:39.210 回答