写一个php获取网站favicon图标
时间: 2024-01-24 15:04:15 浏览: 156
php 抓取任意网站 favicon 小图标
获取网站的 favicon 可以通过以下步骤来实现:
1. 从网站根目录下的 `favicon.ico` 获取图标。
2. 如果 `favicon.ico` 不存在,可以通过解析网页代码中的 `<link>` 标签获取 favicon 地址。
下面是一个获取 favicon 的 PHP 代码示例:
```php
<?php
function getFavicon($url) {
$favicon_url = '';
// 1. 从网站根目录下的 favicon.ico 获取图标
$favicon_url = $url . '/favicon.ico';
$headers = @get_headers($favicon_url);
if ($headers && strpos($headers[0], '200')) {
return $favicon_url;
}
// 2. 解析网页代码中的 <link> 标签获取 favicon 地址
$html = file_get_contents($url);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$links = $doc->getElementsByTagName('link');
for ($i = 0; $i < $links->length; $i++) {
$link = $links->item($i);
if ($link->getAttribute('rel') == 'icon') {
$favicon_url = $link->getAttribute('href');
if (strpos($favicon_url, '//') === 0) {
$favicon_url = 'http:' . $favicon_url;
} elseif (strpos($favicon_url, '/') === 0) {
$favicon_url = $url . $favicon_url;
}
break;
}
}
return $favicon_url;
}
```
使用方法:
```php
$url = 'http://www.example.com';
$favicon_url = getFavicon($url);
echo $favicon_url;
```
注意:获取 favicon 图标可能会因为网络问题或者网站设置问题而失败,需要做好错误处理。
阅读全文