7
votes

PHP - Obtenir le favicon d'un site et la convertir en PNG si nécessaire

pour tout site donné "exemple.domain.tld" ou simplement "domain.tld", j'ai besoin de procéder comme suit à PHP:

  • Si le site a un favicon, obtenez-le partout où il se trouve
    • Si ce n'est pas déjà un PNG, convertissez-le en PNG
    • sauvegardez-le à /favicons/example.domain.tld.png
    • Si le site n'a pas de favicon, ne faites rien.

      Des idées? Je suis excitée par le fichierFormat et l'emplacement peu fiables des Favicons, mais si possible, je souhaite éviter de télécharger toute la source de la page avec File_Get_Contents afin de le trouver dans les en-têtes. La conversion aussi en PNG semble-t-elle non originale.

      merci,

      mala


0 commentaires

6 Réponses :


0
votes

Si le Favicon n'est pas situé à /favicon.ico, je suppose que vous devez analyser le HTML.

Pour la détection de fichiers FileType, vous pouvez utiliser Cette extension , qui détecte le fichierype en utilisant des octets magiques .

Vous pouvez convertir en PNG en utilisant la bibliothèque GD, un exemple peut être trouvé Ici .


0 commentaires

0
votes

La couverture à PNG n'est pas si difficile.

Je ne reçois pas la question entièrement, est-ce que cette icône FAV sur votre site ou sur d'autres sites? Si sur d'autres sites, vous devrez analyser HTML récupéré, puis la charge de Favicon.


1 commentaires

Mon site doit accepter toute URL (disons, Amazon.com ), puis obtenir le Favicon du site - pour le moment J'utilise fichiers_get_contents ($ SITE / FAVICON.ICO), mais le problème est que certains sites aiment avoir d'autres icônes de format ou les stocker à d'autres endroits. Je me demandais s'il y a une façon générique d'arriver au Favicon



0
votes

Si votre installation PHP inclut la bibliothèque GD, vous pouvez convertir une image en PNG à l'aide du imagepng fonction.


0 commentaires


4
votes

trouvé ceci: http://www.controlstyle.com/articles / Programmation / Texte / PHP-Favicon /

Je suis sur le point de l'essayer pour mon projet et je vais faire rapport et vous dire si cela fonctionne!

acclamations

IAIN


2 commentaires

Cela fonctionne réellement! Mais jusqu'à présent, il ne semble pas que Smart de l'analyse de Favicons dans des endroits non standard. Je vais creuser et postera la source si je propose une solution. -IAI


Cette classe ne semble pas bien fonctionner dans de nouvelles versions de PHP.



2
votes

Comme Iain Fraser dit, la classe Favicon de Controlstyle.com ne fonctionne pas avec tous les cas de test.

Fondamentalement, si cela est fourni, la balise d'icône peut contenir une URL différente Types:

  • URL absolu complète: http://www.domain.com/images/fav.ico
  • URL absolue avec schéma relatif: // www.domain.com/images/fav.ico
  • chemin absolu: /images/fav.ico
  • URL relative: ../ images / fav.ico

    En outre, la page Web peut contenir un Attribut qui modifie comment faire face à une URL relative et à un chemin d'absence ...

    J'ai donc écrit une classe PHP qui fonctionne avec tous ces cas. Premièrement, il essaie d'obtenir l'URL Favicon à partir de l'attribut et de retomber à la défaillance Favicon Uri (//www.domain.com/favicon.ico) en cas de défaillance.

    Vous pouvez saisir sur mon site Web ici: http: / /www.finalclap.com/faq/477-php-favicon-find-ndownload ou installez-le à l'aide du compositeur: Compositeur nécessite Vincepare / Favicon-Downloader

    Comment utiliser: xxx


2 commentaires

Belle classe. Juste une note: votre script FinalClap.com a beaucoup d'erreurs d'espacement, qui sont difficiles à trouver et de casser le code. Une fois corrigé, cela fonctionne bien. Les projets futurs de convertir .ico à .png?


Je sais que ces espaces d'espacement sont causés par alexgorbatchev.com/ysntaxhighlighter , utilisé pour afficher le code sur mon site Web. Vous devriez plutôt télécharger la classe d'ici: FinalClap.com/download/item / 76-Favicondownloader-php-Class au lieu de copier et coller le code source de la page du didacticiel. Je ne prévois pas d'ajouter des fonctionnalités converties d'image car je pense qu'il y a de meilleurs outils pour y parvenir, comme ImageMagick.