PHP Meta/Info von Webseite auslesen und in Datenbank schreiben

Rockhound

Lt. Commander
Registriert
Jan. 2003
Beiträge
1.599
Hi Leute,
ich stell mir folgendes vor:
Ein einfaches Eingabefeld in dem ich einen Link poste. Sei es nun irgendeine Internetseite oder YouTube. Nach der Eingabe speichert die Seite in eine Datenbank den Link zur Seite, den Titel, ein entsprechendes Bild etc. pp.

Falls von Euch einer Facebook kennt und es nutzt dann ist es eigentlich genau das was das Eingabefeld auf der Pinnwand macht.

Wie bekomm ich nun die Meta/Infos von den Seiten in die Variablen zum speichern in die Datenbank? Ein kleiner Denkanstoß oder die richtige Seite wo ich mich schlau lesen kann würde mir da schon reichen.

mfg & danke
 
http://www.php.net/manual/de/book.url.php

Weiß nicht was du genau willst aber sowas wie den Titel geht einfach.

Screenshot mit reinem PHP zu erstellen... viel Spaß.
Da brauchst du vermutl. nen Programm, das du auf dem Server installierst o.ä.

http://browsershots.org/

Den Source Code gibts da unter GNU GPL v3. Ansonsten mal googlen.

Edit.:
Wenn du das Bild nicht Zwangsläufig mit speichern musst kannst du auch MIt Javascript etc. direkt ne kleine Vorschau anzeigen, die eben erst dann neu erstellt wird, wenn jemend die Links angezeigt bekommt.

Es gibt mein ich auch Dienstleister, die die solche Thumbnails erstellen.
 
Zuletzt bearbeitet:
Ich meine das in etwa so
facebook.jpg
Ich poste eine URL in das Eingabefeld und schwups :) er zieht die Informationen von der Seite. Und das geht bei jeder Seite... bei einem YouTube Link verlinkt er das Video etc..

Wie bewerkstellige ich so etwas?
 
Kurz: Indem du die Seite per cURL (oder ähnlichen Systemen) lädst und dir einen Parser für die Inhalte schreibst.

Facebook wertet hier in erster Instanz die OpenGraph-Metatags aus, als nächstes werden die regulären Metatags ausgewertet. Wenn da nix zu holen ist bleibt nur ein Ratespielchen.
 
Danke Euch,
habe eine gute Seite gefunden die mir da Tools zur Verfügung stellt.

http://www.embed.ly

Habe es auch geschafft das mal auf eine Seite zu packen von mir
http://www.nooon.de

Ihr könnt dort einen YouTube Link einfügen (zum schluss die Leertaste drücken damit die URL "kopiert" wird in ein <a href...) und dann auf den Button drücken.
Embedly wandelt quasi dann den Link in das Video.
Schon mal ein Anfang :)

Was ich aber bräuchte sind die JSON Informationen die anscheinend zurückgegeben werden.
Nur verstehe ich nicht wie ich diese abgreifen kann.
Ich würde Infos wie Titel, Thumbnail etc.. gerne in Textfelder speichern und dann auf Knopfdruck wandert das in die Datenbank.

---> http://embed.ly/docs/explore/oembed?url=http://www.youtube.com/watch?v=zoLmD7XarT8

Hier seht ihr welche Infos da zurückkommen.

Vielleicht fällt das ja jemanden ganz einfach und kann mir ein Code-Schnipsel zur Verfügung stellen :/ Probier da jetzt schon seit Stunden rum und find nix brauchbares die Daten wieder auf meiner Seite einzubetten.

Grüßle
Daniel


PS: Hier habe ich mal ein 2tes Beispiel eingefügt: http://nooon.de/form.html
einfach mal ein z.b. YouTube Link einfügen und Enter drücken. Wie kann ich die Infos die da zurückkommen abgreifen und in Textfelder packen?
 
Zuletzt bearbeitet:
Du musst die API nutzen und bekommst dann JSON zurück. Mit anderen Worten darfst du nicht http://embed.ly/docs/explore/oembed?url=http://www.youtube.com/watch?v=zoLmD7XarT8 anfragen (hier bekommst du die Website), sondern http://api.embed.ly/1/oembed?url=http://www.youtube.com/watch?v=zoLmD7XarT8&maxwidth=500 (hier bekommst du den JSON String).
JSON kann man in PHP out of the box parsen und sich die Informationen an denen man Interesse hat rausholen.

Edit: Ein Minimalbeispiel könnte also so aussehen.
Code:
<html>
    <body>
    <?php
        if ($_POST["url"]) {
            $response = file_get_contents('http://api.embed.ly/1/oembed?url=' . urlencode($_POST["url"]) . '&maxwidth=500');
            $response = json_decode($response);
            print("Titel: " . $response->{"title"} . "<br>\n");
            print($response->{"html"}. "\n");
        } else {
            ?>
                <form action="test.php" method="post">
                    <input type="text" name="url" />
                    <input type="submit" />
                </form>
            <?php
        }
    ?>
    </body>
</html>
 
Zuletzt bearbeitet: (etwas elaborierteres Beispiel)
Perfekt. Es funktioniert. Ich danke dir vielmals.
 
Zurück
Oben