WulfmanGER
Commander
- Registriert
- Juli 2005
- Beiträge
- 2.412
Hi
für eine kleine private (!) Filmdatenbank, hätte ich gerne noch Film-Infos ...
ofdb.de bietet hier die möglichkeit gezielt per XML Daten zu Importieren: http://ofdbgw.scheeper.net/movie_ext/2745.xml
Nur bekomme ich diese Daten noch nicht in eine DB rein (bzw. zum testen lass ich mir die per Echo ausgeben) - da fehlt mir ein klein wenig Know-How (wie man etwas in eine DB bekommt, weiß ich schon *G*; es geht um das auslesen der xml-Tags):
Habe bei php.net auch eine relativ Simples Script gefunden:
Mit dem Script komme ich an alle Tags in der XML dran die "einmalig" sind. (Beschreibung, Kurzbeschreibung, Jahr usw.). Tags die nicht einmalig sind, werden allerdings nur mit ersten Vorkommen genommen (wie der Filmtitel im TITEL-Tag - das kommt mehrfach vor [danach unter GENRE]).
Wo ich nicht rankomme, sind Tags mit mehreren Einträgen:
In dem Beispiel oben:
Genre => Hat 2 Titel-Einträge (Komödie und Drama)
Genre bekomme ich angezeigt wenn ich
nutze. Allerdings hab ich dann in der Ausgabe folgendes Stehen:
<titel>Komödie</titel>
<titel>Drama</titel>
Ich müsste das in ein Array speichern? Ohne <titel>-Tag. In die Datenbank würde ich das dann in ein Feld eintragen: "Komödie, Titel" (was ich hoffentlich später wieder getrennt bekomme *G*; weil jedes Genre soll anklickbar sein).
Problematischer wirds bei den Personen-Tags: Hier interessieren mich nur Tags wo auch eine ausgefüllte Rolle existiert. Auch die möchte ich im ersten Step einmal ausgegeben bekommen (wie gesagt: bekomme ich es mit echo ausgeben, bekomm ich es auch in eine SQL-DB rein). Aber ich weiß nicht wie
Hat hier jemand vielleicht eine Idee? Oder vielleicht schon mal ein Script für ofdb.de gefunden welches problemlos zugriff auf ALLE Tags gewährt?
Gruß
PS: imdb.com (bzwl. de) hat mir zuviel englische Einträge; wobei die Schauspieler-Rollen-Liste dort gepflegter sind; aber erstmal ofdb.de "bändigen"
für eine kleine private (!) Filmdatenbank, hätte ich gerne noch Film-Infos ...
ofdb.de bietet hier die möglichkeit gezielt per XML Daten zu Importieren: http://ofdbgw.scheeper.net/movie_ext/2745.xml
Nur bekomme ich diese Daten noch nicht in eine DB rein (bzw. zum testen lass ich mir die per Echo ausgeben) - da fehlt mir ein klein wenig Know-How (wie man etwas in eine DB bekommt, weiß ich schon *G*; es geht um das auslesen der xml-Tags):
Habe bei php.net auch eine relativ Simples Script gefunden:
Code:
<?php
// Extracts content from XML tag
function GetElementByName ($xml, $start, $end) {
global $pos;
$startpos = strpos($xml, $start);
if ($startpos === false) {
return false;
}
$endpos = strpos($xml, $end);
$endpos = $endpos+strlen($end);
$pos = $endpos;
$endpos = $endpos-$startpos;
$endpos = $endpos - strlen($end);
$tag = substr ($xml, $startpos, $endpos);
$tag = substr ($tag, strlen($start));
return $tag;
}
// Open and read xml file. You can replace this with your xml data.
$file = "http://ofdbgw.scheeper.net/movie_ext/2745.xml";
$pos = 0;
$Nodes = array();
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
while ($getline = fread($fp, 4096)) {
$data = $data . $getline;
}
$count = 0;
$pos = 0;
// Goes throw XML file and creates an array of all <XML_TAG> tags.
while ($node = GetElementByName($data, "<resultat>", "</resultat>")) {
$Nodes[$count] = $node;
$count++;
$data = substr($data, $pos);
}
// Gets infomation from tag siblings.
for ($i=0; $i<$count; $i++) {
$titel= GetElementByName($Nodes[$i], "<titel>", "</titel>");
$beschreibung = GetElementByName($Nodes[$i], "<beschreibung>", "</beschreibung>");
$bild = GetElementByName($Nodes[$i], "<bild>", "</bild");
// $kurzbeschreibung = GetElementByName($Nodes[$i], "<kurzbeschreibung>", "</kurzbeschreibung");
$jahr = GetElementByName($Nodes[$i], "<jahr>", "</jahr");
}
// Ausgabe Test [nur Test ob ich die gewünschten Daten ausgelesen bekomme; Import SQL dann kein Problem]
echo $titel ." (".$jahr.")<br />";
// echo $kurzbeschreibung ."<br />";
echo $beschreibung ."<br />";
echo "<img src=".$bild." /> <br />";
?>
Mit dem Script komme ich an alle Tags in der XML dran die "einmalig" sind. (Beschreibung, Kurzbeschreibung, Jahr usw.). Tags die nicht einmalig sind, werden allerdings nur mit ersten Vorkommen genommen (wie der Filmtitel im TITEL-Tag - das kommt mehrfach vor [danach unter GENRE]).
Wo ich nicht rankomme, sind Tags mit mehreren Einträgen:
In dem Beispiel oben:
Genre => Hat 2 Titel-Einträge (Komödie und Drama)
Genre bekomme ich angezeigt wenn ich
Code:
GetElementByName($Nodes[$i], "<genre>", "</genre");
<titel>Komödie</titel>
<titel>Drama</titel>
Ich müsste das in ein Array speichern? Ohne <titel>-Tag. In die Datenbank würde ich das dann in ein Feld eintragen: "Komödie, Titel" (was ich hoffentlich später wieder getrennt bekomme *G*; weil jedes Genre soll anklickbar sein).
Problematischer wirds bei den Personen-Tags: Hier interessieren mich nur Tags wo auch eine ausgefüllte Rolle existiert. Auch die möchte ich im ersten Step einmal ausgegeben bekommen (wie gesagt: bekomme ich es mit echo ausgeben, bekomm ich es auch in eine SQL-DB rein). Aber ich weiß nicht wie
Hat hier jemand vielleicht eine Idee? Oder vielleicht schon mal ein Script für ofdb.de gefunden welches problemlos zugriff auf ALLE Tags gewährt?
Gruß
PS: imdb.com (bzwl. de) hat mir zuviel englische Einträge; wobei die Schauspieler-Rollen-Liste dort gepflegter sind; aber erstmal ofdb.de "bändigen"