2010-01-02 4 views
8

나는 내 웹 사이트에 추천 웹 사이트를 표시하려고하고 favicon을 사용하는 것이 좋을 것이라고 생각했습니다. JSP 또는 XSLT에서 임의의 URL에 대해 도메인에서 가져 오는 방법은 무엇입니까? PHP 또는 자바 스크립트를 실행할 수 있지만 XSLT를 사용하는 것이 좋습니다.웹 사이트의 favicon을 검색하려면 어떻게해야합니까?

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" /> 
+2

favicon을 얻으려면 다음을 사용할 수 있습니다. http://www.google.com/s2/favicons?domain=domain_name –

답변

17

웹 사이트의 파비콘을 얻으려면, 당신은 각각의 기능을 갖춘 웹 사이트의 인덱스 HTML을로드하고 다음 중 하나를 확인하기 위해 필요

Internet Explorer는 약간 다른 형식을 사용할 수 있습니다.

<link rel="SHORTCUT ICON" href="http://www.example.com/myicon.ico" /> 

위의 링크 참조가 발견되지 않으면 대부분의 웹 브라우저에서 favicon을 검색하기 위해 HTML 링크가 필요하지 않으므로 웹 사이트의 문서 루트에서 favicon.ico도 확인해야합니다.

PHP와

, file_get_contents($url)를 사용하여 웹 페이지의 HTML 콘텐츠를 쉽게 얻을 수 있습니다 :

$url = 'http://www.exmaple.com'; 
$output = file_get_contents($url); 
+2

우수! 다니엘 감사합니다. PHP 튜토리얼을 살펴보고 어떻게 작동하는지 알려 드리겠습니다. – mobibob

0

는 나의 시도 할 수 그것. 그것은 여러 가지 경우를 해결하기 위해 다양한 전략을 사용하여 파이어 폭스를 들어 당신이 https://addons.mozilla.org/en-US/firefox/addon/httpfox/을 사용할 수

<? 
/* 
    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

. 웹 사이트를로드 한 다음 F10> ...> "자신의 창에서 HttpFox 열기"를 누른 다음 "image/x-icon"을 찾으십시오. 오른쪽 열의 URL입니다.

0

페이지 소스 코드를 엽니 다 (페이지 소스보기를 마우스 오른쪽 단추로 클릭). 아래에서 언급 한 줄을 찾고 images/favicon.png 링크를 클릭하십시오.

<link rel="icon" href="images/favicon.png" type="image/png" sizes="16x16"> 
관련 문제