Frage

Für jede gegebene Website „example.domain.tld“ oder lediglich „domain.tld“ Ich brauche die folgend in PHP zu tun:

  • Wenn die Website ein Favicon hat, bekommen sie überall dort, wo es ist
    • Wenn es nicht bereits ein PNG ist, wandelt es in PNG
    • Speichern Sie es auf /favicons/example.domain.tld.png
  • Wenn die Site nicht Favicon hat, nichts tun.

Irgendwelche Ideen? Ich bin von der unzuverlässigen Dateiformat und die Position der Favicons stapfte zu werden, aber wenn überhaupt möglich möchte ich mit file_get_contents, um die gesamte Quelle der Seite zu vermeiden, das Herunterladen es in den Headern zu finden. Auch die Umstellung auf png scheint nicht trivial.

Danke,

Mala

War es hilfreich?

Lösung

Wie typisch ist, fand ich eine passable Lösung kurz nach der Frage zu stellen - lassen Sie Google die Arbeit für Sie tut:

http://www.google.com/s2/favicons?domain=URL

liefert ein 16x16 png

Andere Tipps

Gefunden this: http://www.controlstyle.com/articles / Programmierung / text / php-Favicon /

Ich bin über es für mein Projekt zu versuchen, und ich werde berichten und Ihnen sagen, ob es funktioniert!

Prost

Iain

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

Grundsätzlich, wenn vorgesehen ist, kann der <link> Shortcut-Symbol-Tag verschiedene URL-Typen enthalten:

  • full absolute URL: http://www.domain.com/images/fav.ico
  • absolute URL mit relativem Schema: //www.domain.com/images/fav.ico
  • absoluter Pfad: /images/fav.ico
  • relative URL: ../images/fav.ico

Darüber hinaus kann die Seite, um ein <base href="..." /> Attribut enthält, die Änderungen, wie mit relativ URL und absoute Pfad beschäftigen ...

So habe ich eine PHP-Klasse geschrieben, die mit all diesen Fällen funktionieren. Erstens, es versucht, die Favicon-URL aus dem <link> Attribute zu bekommen, und Rückfall auf den Standard-Favicon URI (//www.domain.com/favicon.ico) im Fall des Scheiterns.

Sie können es auf meiner Website greifen hier: http: // www .finalclap.com / faq / 477-php-Favicon-find-Download oder installieren sie es Composer. composer require vincepare/favicon-downloader

Wie verwenden:

<?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";
}
?>

zu PNG coverting ist nicht so schwer.

ich die Frage nicht ganz bekommen, dann ist dies FAV-Symbol auf Ihrer Website oder auf anderen Websites? Wenn auf anderen Seiten, Sie müssen geholt HTML analysieren und dann irgendwie Favicon laden.

Wenn das Favicon nicht /favicon.ico befindet ich denke, Sie haben die HTML zu analysieren.

Für die Dateityp-Erkennung, können Sie verwenden, diese Erweiterung , die den Dateityp erkennt durch magisches Bytes mit .

Sie können mit Hilfe der GD-Bibliothek zu PNG konvertieren, kann ein Beispiel gefunden werden hier .

Wenn Sie Ihre PHP enthält installieren Sie die GD-Bibliothek, können Sie ein Bild in ein PNG mit der imagepng Funktion.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top