Mit PHP "Website Inhalte einlesen"
Achim
- php
Hi !
in Facebook gibt es eine Funktion "Link posten". Wenn man einen Link postet, liest Facebook die Metadaten (description) und bietet einige Bilder der Site als Thumbnail an.
Wie machen die das ? Kann ich das mit PHP auch machen ?
Es braucht mir keiner vorkauen wie ... Link auf die Bibliothek oder Funktion genügt. Habe bisher nichts geeigentes gefunden.
Danke und Gruss
Hi !
in Facebook gibt es eine Funktion "Link posten". Wenn man einen Link postet, liest Facebook die Metadaten (description) und bietet einige Bilder der Site als Thumbnail an.
Wie machen die das ? Kann ich das mit PHP auch machen ?
Es braucht mir keiner vorkauen wie ... Link auf die Bibliothek oder Funktion genügt. Habe bisher nichts geeigentes gefunden.
Danke und Gruss
http://www.selfphp.de/funktionsreferenz/dateisystem_funktionen/fopen.php
Du kannst die Datei mit den Dateisystem-Funktionen von PHP über HTTP öffnen (http://www.selfphp.de/funktionsreferenz/dateisystem_funktionen/fopen.php) und anschließend mit den DOM-Funktionen analysieren.
http://www.selfphp.de/funktionsreferenz/dateisystem_funktionen/fopen.php
Du kannst die Datei mit den Dateisystem-Funktionen von PHP über HTTP öffnen (http://www.selfphp.de/funktionsreferenz/dateisystem_funktionen/fopen.php) und anschließend mit den DOM-Funktionen analysieren.
<gebetsmühle>fopen() ist keine Gute idee um Inhalte von fremden Domains einzulesen, da man zusehr auf allow_url_fopen angewiesen ist. Die bessere Variante ist fsockopen() zu verwenden.</gebetsmühle>
(Hallo|Hi(ho)|Nabend) Achim,
in Facebook gibt es eine Funktion "Link posten". Wenn man einen Link postet, liest Facebook die Metadaten (description) und bietet einige Bilder der Site als Thumbnail an.
Wie machen die das?
Kann ich das mit PHP auch machen ?
Klar.
Es braucht mir keiner vorkauen wie ...
Das ist gut. Wäre mir auch zu mühsam. ;-)
Link auf die Bibliothek oder Funktion genügt.
file_get_contents() -- wenn, ja, wenn die lustigen fopen()-URL-Wrapper aktiviert sind. ;-)
Am zweit-einfachsten ist wohl der Weg über die CURL-Erweiterung. Aber auch die muss aktiviert sein, sie gehört nicht serienmäßig zu PHP.
Wenn du das Ganze zu Fuß programmieren möchtest oder musst (was durchaus interessant ist), dann brauchst du erstmal mindestens fsockopen() oder seine beiden moderneren Kumpels stream_context_create() und stream_socket_client(), dann fwrite(), fgets()/fread(), ein paar Grund legende Kenntnisse des HTT-Protokolls[1] -- und dann kannst du schon loslegen und dir ein Script basteln, was "HTML-Dateien" von fremden Servern klau(b)t.
Leider ist das nur die halbe Miete. Denn du musst das HTML noch zerlegen und nach "Bildern" durchsuchen. Hier kannst du dir wahlweise einen langen PCRE einfallen lassen, um IMG-Elemente im Quelltext zu finden oder einen mehr oder weniger komplexen Parser basteln, um aus dessen Ausgaben dann die URLs für die Grafikdateien herauszuziehen. Diese kannst du dann wieder per CURL oder fsockopen() & Friends laden und schließlich mit den GD-Funktionen in Thumbnails umwandeln.
Habe bisher nichts geeigentes gefunden.
Dann google doch einfach mal nach den richtigen Worten.
--
[1] Die ganzen Feinheiten wie Redirects, "chunked Transfer-Encoding" und "gezippte" Daten lass ich heute mal weg. Aber auch diese Probleme sind prinzipiell lösbar. ;-)
MffG
EisFuX