Einzelnen Beitrag anzeigen
Ungelesen 15.08.09, 16:36   #1
Implant
Anfänger
 
Registriert seit: Sep 2008
Beiträge: 10
Bedankt: 3
Implant ist noch neu hier! | 0 Respekt Punkte
Standard XML mittels PHP durchsuchen

Ich hab hier ein S***** um eine XML Datei zu durchsuchen und das ergebnis auszugeben:

PHP-Code:
<?php
// Hier die zu durchsuchenden Dateien eintragen
$xml_dateien = array(
"filme_data.xml");

// Überprüfen ob über POST gesendet wurde
if ($_POST) {

 
// Überprüfen ob der Suchbegriff mindestens 3 Zeichen enthält
 
if (strLen($_POST["suchbegriff"]) > 2) {
  
$suchbegriff $_POST["suchbegriff"];
 
  
// Die Umlaute im Suchbegriff in Buchstabencode umwandeln;
  // das ist nur nötig wenn in der XML-Datei auch Buchstabencode vorhanden ist
  
$suchbegriff ereg_replace("Ö""&Ouml;"$suchbegriff);
  
$suchbegriff ereg_replace("ö""&ouml;"$suchbegriff);
  
$suchbegriff ereg_replace("Ä""&Auml;"$suchbegriff);
  
$suchbegriff ereg_replace("ä""&auml;"$suchbegriff);
  
$suchbegriff ereg_replace("Ü""&Uuml;"$suchbegriff);
  
$suchbegriff ereg_replace("ü""&uuml;"$suchbegriff);
  
$suchbegriff ereg_replace("ß""&szlig;"$suchbegriff);

  
$suchergebnis ""// Hier werden die Suchergebnisse gespeichert
  
$suchergebniszahl 0// Zähler für die Suchergebnisse

  
for ($zaehler 0$zaehler count($xml_dateien); $zaehler++) {
   
$inhalt file_get_contents($xml_dateien[$zaehler]); // Datei einlesen
   
$inhalt explode("<IDEM>" $inhalt); // Inhalt in ein Array zerlegen

   
for ($inhaltszaehler 0$inhaltszaehler count($inhalt); $inhaltszaehler++) {
    
// Inhalt mit dem Suchbegriff überprüfen
    
if (eregi($suchbegriff$inhalt[$inhaltszaehler]) == true) {
     
// Link, Name und Beschreibung auslesen
     
ereg("<NAME>(.*)</NAME>" $inhalt[$inhaltszaehler] , $name);
     
ereg("<MEDIUM>(.*)</MEDIUM>" $inhalt[$inhaltszaehler] , $medium);
     
ereg("<ORT>(.*)</ORT>" $inhalt[$inhaltszaehler] , $ort);
     
ereg("<AUFLOESUNG>(.*)</AUFLOESUNG>" $inhalt[$inhaltszaehler] , $aufloesung);
     
ereg("<FORMAT>(.*)</FORMAT>" $inhalt[$inhaltszaehler] , $format);
     
     
$suchergebnis .= "<tr>\n";
     
$suchergebnis .= " <td><font face=\"Verdana\" size=\"2\">$name[1]</font></td>\n";
     
$suchergebnis .= " <td><font face=\"Verdana\" size=\"2\">$medium[1]</font></td>\n";
     
$suchergebnis .= " <td><font face=\"Verdana\" size=\"2\">$ort[1]</font></td>\n";
     
$suchergebnis .= " <td><font face=\"Verdana\" size=\"2\">$aufloesung[1]</font></td>\n";
     
$suchergebnis .= " <td><font face=\"Verdana\" size=\"2\">$format[1]</font></td>\n";
     
$suchergebnis .= "</tr>\n";
     
$suchergebniszahl++; // Zähler wird erhöht
    
}
   }
  }
  
// Ausgabe des  Suchergebnisses
  
if ($suchergebniszahl == 0) {
   echo 
"<font face=\"Verdana\" size=\"3\" color=\"FF0000\" ><b>Leider konnte in der Datenbank kein Eintrag gefunden werden!</b></font>";
  }
  else {
   echo 
"" . ($suchergebniszahl 1) ? "<font face=\"Verdana\" size=\"2\"><b>Es wurden $suchergebniszahl Filme oder $suchergebniszahl Serien gefunden:</b></font><br>"
    
"<font face=\"Verdana\" size=\"2\"><b>Es wurde eine Film oder eine Serie gefunden:</b></font><br>";
   echo 
$suchergebnis;
  }
 }
}
?>
Wie stelle ich es jetzt an das nur <NAME>(.*)</NAME> bzw. $name ausgelesen wird, aber trozdem das gesammt ergebnis das eintrages <IDEM> angezeigt wird?

Noch mal verständlicher:

Ich möchte das NUR in
ereg("<NAME>(.*)</NAME>" , $inhalt[$inhaltszaehler] , $name);
gesucht wird, das Suchergebnis aber
ereg("<NAME>(.*)</NAME>" , $inhalt[$inhaltszaehler] , $name);
ereg("<MEDIUM>(.*)</MEDIUM>" , $inhalt[$inhaltszaehler] , $medium);
ereg("<ORT>(.*)</ORT>" , $inhalt[$inhaltszaehler] , $ort);
ereg("<AUFLOESUNG>(.*)</AUFLOESUNG>" , $inhalt[$inhaltszaehler] , $aufloesung);
ereg("<FORMAT>(.*)</FORMAT>" , $inhalt[$inhaltszaehler] , $format);

beinhaltet.
Implant ist offline   Mit Zitat antworten