Après 30.000 à 40.000 tests, j'ai remarqué que vous rencontrez beaucoup de situations différentes contre lesquelles il faut travailler. Le point de départ est bien sûr de ne regarder que la balise rel et d'aller le chercher, mais en cours de route, vous trouverez de plus en plus de situations à couvrir.
Dans le cas où quelqu'un regardera ce fil et essaie de se rapprocher de la perfection à 100%, j'ai téléchargé mon code (PHP) ici: https://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php. Cela fait partie d'un plugin WordPress (GPL) qui récupère Favicons, plus ou moins sur demande à l'époque, hors des limites de la norme Google (comme mentionné ci-dessus). Le code trouve sensiblement plus d'icônes que le code de Google. Mais inclut également Google et d'autres en tant que fournisseurs d'images pour raccourcir d'autres itérations en essayant de récupérer l'icône.
Lorsque vous lirez le code, vous verrez probablement certaines situations que vous rencontrerez, par ex. base64 data uris, pages redirigeant vers 404 pages ou redirigeant un temps de gazillion, récupérant des codes de statut HTTP bizarres et vérifiant la validité de chaque code de retour HTTP possible, les icônes elles-mêmes ayant un mauvais type mime, tags de rafraîchissement côté client, icônes dans le dossier racine et aucun dans le code html, etc ... etc ... etc ...
Si vous montez un répertoire, vous trouverez d'autres classes qui sont alors nécessaires pour stocker les icônes réelles par rapport à leur URL (et Bien sûr, vous aurez besoin de savoir quelles "branches" utilisent le même favicon et qui ne sont pas, et découvrir si elles appartiennent au même "propriétaire" ou sont vraiment des parties différentes mais sous le même domaine
Il faut se connecter. – hsz
J'ai mis à jour la réponse. – NVI
Good Stuff .. m'a sauvé un certain temps – 5hahiL