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?),因为它没有考虑属性的顺序(可能会有所不同)
- 不要像我的那样写你的代码