Comme Iain Fraser a dit, la classe favicon de controlstyle.com ne fonctionne pas avec tous les cas de test.
En gros, si elle est fournie, l'étiquette d'icône de raccourci <link>
peut contenir différents types d'URL:
- URL complète absolue:
http://www.domain.com/images/fav.ico
- URL absolue avec le schéma relatif:
//www.domain.com/images/fav.ico
- chemin absolu:
/images/fav.ico
- relative URL:
../images/fav.ico
De plus, la page Web peut contenir un attribut <base href="..." />
qui change la façon de traiter avec l'URL relative et chemin absoute ...
J'ai écrit une classe PHP qui fonctionne avec tous ces cas. Tout d'abord, il essaie d'obtenir l'URL de favicon à partir de l'attribut <link>
, et de se rabattre sur l'URI favicon par défaut (//www.domain.com/favicon.ico) en cas d'échec.
Vous pouvez l'obtenir sur mon site Web ici: http://www.finalclap.com/faq/477-php-favicon-find-download ou l'installer en utilisant composer: composer require vincepare/favicon-downloader
.
Comment utiliser:
<?php
require 'FaviconDownloader.class.php';
$favicon = new FaviconDownloader('http://stackoverflow.com/questions/19503326/bug-with-chrome-tabs-create-in-a-loop');
if($favicon->icoExists){
echo "Favicon found : ".$favicon->icoUrl."\n";
// Saving favicon to file
$filename = 'favicon-'.time().'.'.$favicon->icoType;
file_put_contents($filename, $favicon->icoData);
echo "Saved to ".$filename."\n\n";
} else {
echo "No favicon for ".$favicon->url."\n\n";
}
?>
c'est comme si vous écrivez vous-même: www.domain.com/favicon.ico. J'ai vérifié et c'est la même chose .. – vsync
Pas vraiment - tout d'abord, il renvoie un png, pas un ico. Deuxièmement, les favicons peuvent être situés dans une myriade de chemins - cela standardise, et laisse le travail à google. Enfin, si un favicon n'est pas trouvé, il renvoie une image d'espace réservé, au lieu de vous poser une image brisée. – Mala
Mais comme pour toutes les solutions centrales: sachez que Google peut vous connecter à ce groupe d'URL maintenant. Si cela ne vous dérange pas, ça a l'air bien. –