我想在我的網站上列出特色網站,我認爲這將是很酷的兌現和使用他們的圖標。在JSP或XSLT中,如何從域中獲取任意URL?我可以發佈PHP或JavaScript,但XSLT是首選的方法。如何檢索網站的圖標?
8
A
回答
17
爲了得到一個網站的圖標,你需要加載每個功能網站的索引HTML,檢查以下任一操作:
HTML:
<link rel="icon" type="image/vnd.microsoft.icon" href="http://example.com/image.ico">
<link rel="icon" type="image/png" href="http://example.com/image.png">
<link rel="icon" type="image/gif" href="http://example.com/image.gif">
XHTML:
<link rel="icon" type="image/vnd.microsoft.icon" href="/somepath/image.ico" />
<link rel="icon" type="image/png" href="/somepath/image.png" />
<link rel="icon" type="image/gif" href="/somepath/image.gif" />
Internet Explorer可能會使用稍微不同的格式:
<link rel="SHORTCUT ICON" href="http://www.example.com/myicon.ico" />
另請注意,由於大多數Web瀏覽器不需要HTML鏈接來檢索收藏夾圖標,因此如果找不到以上任何鏈接引用,則還應該在網站的文檔根目錄中檢查favicon.ico
。
使用PHP,很容易通過使用file_get_contents($url)
得到一個網頁的HTML內容:
$url = 'http://www.exmaple.com';
$output = file_get_contents($url);
+2
優秀!感謝Daniel的細節。我將檢查PHP教程,並讓你知道它是如何工作的。 – mobibob 2010-01-02 05:02:45
31
0
這是我在嘗試它。它使用各種策略來解決許多可能的情況:
<?
/*
nws-favicon : Get site's favicon using various strategies
This script is part of NWS
https://github.com/xaccrocheur/nws/
*/
function CheckImageExists($imgUrl) {
if (@GetImageSize($imgUrl)) {
return true;
} else {
return false;
};
};
function getFavicon ($url) {
$fallback_favicon = "/var/www/favicon.ico";
// $fallback_favicon = "http://stackoverflow.com/favicon.ico";
$dom = new DOMDocument();
@$dom->loadHTML($url);
$links = $dom->getElementsByTagName('link');
$l = $links->length;
$favicon = "/favicon.ico";
for($i=0; $i<$l; $i++) {
$item = $links->item($i);
if(strcasecmp($item->getAttribute("rel"),"shortcut icon") === 0) {
$favicon = $item->getAttribute("href");
break;
}
}
$u = parse_url($url);
$subs = explode('.', $u['host']);
$domain = $subs[count($subs) -2].'.'.$subs[count($subs) -1];
$file = "http://".$domain."/favicon.ico";
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found' || $file_headers[0] == 'HTTP/1.1 404 NOT FOUND' || $file_headers[0] == 'HTTP/1.1 301 Moved Permanently') {
$fileContent = @file_get_contents("http://".$domain);
$dom = @DOMDocument::loadHTML($fileContent);
$xpath = new DOMXpath($dom);
$elements = $xpath->query("head/link//@href");
$hrefs = array();
foreach ($elements as $link) {
$hrefs[] = $link->value;
}
$found_favicon = array();
foreach ($hrefs as $key => $value) {
if(substr_count($value, 'favicon.ico') > 0) {
$found_favicon[] = $value;
$icon_key = $key;
}
}
$found_http = array();
foreach ($found_favicon as $key => $value) {
if(substr_count($value, 'http') > 0) {
$found_http[] = $value;
$favicon = $hrefs[$icon_key];
$method = "xpath";
} else {
$favicon = $domain.$hrefs[$icon_key];
if (substr($favicon, 0, 4) != 'http') {
$favicon = 'http://' . $favicon;
$method = "xpath+http";
}
}
}
if (isset($favicon)) {
if (!CheckImageExists($favicon)) {
$favicon = $fallback_favicon;
$method = "fallback";
}
} else {
$favicon = $fallback_favicon;
$method = "fallback";
}
} else {
$favicon = $file;
$method = "classic";
if (!CheckImageExists($file)) {
$favicon = $fallback_favicon;
$method = "fallback";
}
}
return $favicon;
}
?>
0
對於Firefox,你可以使用https://addons.mozilla.org/en-US/firefox/addon/httpfox/。加載網站,然後按F10> ...>「在自己的窗口中打開HttpFox」,然後查找「image/x-icon」;在右邊的列是URL。
0
打開頁面源代碼(右鍵單擊查看頁面源代碼)找到下面提到的行,單擊images/favicon.png鏈接。
<link rel="icon" href="images/favicon.png" type="image/png" sizes="16x16">
相關問題
- 1. 如何檢索網站圖標?
- 2. 如何檢索網站根網址?
- 3. 檢索網站
- 4. 從Firefox擴展中檢索網站的圖標網址
- 5. 如何檢索網站中標籤的價值?
- 6. 如何從網站檢索數據
- 7. Android如何從網站檢索數據?
- 8. 如何檢索網站名稱?
- 9. 如何通過HTTP檢索網站?
- 10. 只從網站檢索圖像
- 11. 從網站檢索SVG圖像
- 12. 如何獲取網站的圖標?
- 13. 如何獲取網站的圖標?
- 14. 如何從幻燈片放映網站檢索URL圖像
- 15. 如何在網站搜索的任何網站上搜索
- 16. 從網站檢索數據
- 17. 從網站檢索數據
- 18. 網站數據檢索
- 19. 從網站檢索html
- 20. 如何使用Jsoup從網站上的鏈接檢索網址?
- 21. 添加網站圖標到網站
- 22. 如何檢測Joomla網站?
- 23. 網站圖標的404
- 24. 如何檢索移動網站的HTML源代碼,Android的
- 25. 如何使用DOM和JSOUP檢索來自此網站的圖像的URL?
- 26. 如何檢索地圖註記座標?
- 27. Android:檢索網站的HTML - 不工作
- 28. 檢索網站上的名稱?
- 29. Javascript:檢索特定網站的Cookie
- 30. 用於檢索網站鏈接的API
得到一個favicon可以使用這個:http://www.google.com/s2/favicons?domain=domain_name – 2017-06-14 14:59:49