PHP - das Favicon einer Site abrufen und bei Bedarf in png umwandeln

7

Für jede gegebene Site "example.domain.tld" oder nur "domain.tld" muss ich folgendes in PHP machen:

  • Wenn die Seite ein Favicon hat, holen Sie es, wo immer es ist
    • Wenn es noch kein PNG ist, wandeln Sie es in PNG
    • um
    • Speichern Sie es unter /favicons/example.domain.tld.png
  • Wenn die Site kein Favicon hat, nichts tun.

Irgendwelche Ideen? Ich bin von dem unzuverlässigen Dateiformat und dem Speicherort der Favicons überrascht, aber wenn es möglich ist, möchte ich vermeiden, die gesamte Quelle der Seite mit file_get_contents herunterzuladen, um sie in den Kopfzeilen zu finden. Auch die Konvertierung in png scheint nicht-trivial zu sein.

Danke,

Mala

    
Mala 14.08.2009, 08:34
quelle

6 Antworten

26

Wie üblich fand ich kurz nachdem ich die Frage gestellt hatte, eine passable Lösung - lass Google die Arbeit für dich erledigen:

Ссылка

gibt ein 16x16 png

zurück     
Mala 14.08.2009, 09:19
quelle
4

Gefunden: Ссылка

Ich probiere es für mein Projekt aus und ich melde mich und sage Ihnen, ob es funktioniert!

Prost

Iain

    
Iain Fraser 16.08.2010 06:42
quelle
2

Wie Iain Fraser sagte, funktioniert die Favicon-Klasse von controlstyle.com nicht mit allen Testfällen.

Grundsätzlich kann das Verknüpfungssymbol% ​​co_de%, sofern angegeben, verschiedene URL-Typen enthalten:

  • vollständige absolute URL: <link>
  • absolute URL mit dem relativen Schema: http://www.domain.com/images/fav.ico
  • absoluter Pfad: //www.domain.com/images/fav.ico
  • relative URL: /images/fav.ico

Außerdem kann die Webseite ein Attribut ../images/fav.ico enthalten, das den Umgang mit relativer URL und absolutem Pfad ändert ...

Also habe ich eine PHP-Klasse geschrieben, die mit all diesen Fällen funktioniert. Zuerst wird versucht, die Favicon-URL aus dem <base href="..." /> -Attribut zu erhalten und im Falle eines Fehlers auf die Standard-Favicon-URI (//www.domain.com/favicon.ico) zurückzugreifen.

Sie können es auf meiner Website hier finden: Ссылка oder installieren Sie es mit Composer : <link> .

Wie zu verwenden:

%Vor%     
Vince 31.03.2014 20:12
quelle
0

Der Umgang mit PNG ist nicht so schwer.

Ich verstehe die Frage nicht vollständig, ist das Favoritensymbol auf Ihrer Website oder auf anderen Websites? Wenn Sie auf anderen Websites sind, müssen Sie abgerufenes HTML analysieren und dann irgendwie favicon laden.

    
usoban 14.08.2009 09:03
quelle
0

Wenn sich das Favicon nicht in /favicon.ico befindet, muss der HTML-Code analysiert werden.

Für die Dateitypenerkennung können Sie diese Erweiterung verwenden, die den Dateityp mithilfe von magischen Bytes erkennt.

Sie können mit der GD-Bibliothek in PNG konvertieren, ein Beispiel finden Sie hier .

    
Johannes Bittner 14.08.2009 09:02
quelle
0

Wenn Ihre PHP-Installation die GD-Bibliothek enthält, können Sie ein Bild mithilfe der imagepng Funktion.

    
Andy Balaam 14.08.2009 09:08
quelle

Tags und Links