• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

xml und php

Jonny007-MKD

New member
ok, das thema xml und php wurde schon oft angesprochen. allerdings hab ich über die suche nichts gefunden. ich möchte mit php 4 verschiedene texte ausgeben. jedentag einen anderen. mit txt dateien, bei der er immer die oberste zeile löscht, geht wohl nicht, weil er alles hintereinander setzt. Etz möcht ich das mit XML ausprobiern.
meine fragen:
1. kann ich des datum abfragen und demnach einen bestimmten teil im xml auswählen?
2. kann ich in diesem teil nur bestimmte teile nehmen, die also in tags hocken, und dann mit php nur den bestimmten tag abfragen, um die 4 teile an verschiedenen stellen auszugeben?

Danke jetzt schon ma


Greetz
Jonny007
 
http://de3.php.net/manual/de/ref.simplexml.php
http://de3.php.net/manual/de/ref.domxml.php

1. Du wirst in jedem Fall die ganze XML-Datei einlesen müssen, aber natürlich kannst du anhand des Datums einen bestimmten Block auswählen und ausgeben.
2. Via XML-DOM oder SimpleXML kannst du dir das XML von PHP parsen lassen. Als Ergebnis erhältst du einen Parsebaum, der es dir erlaubt, auf jedes Element direkt zuzugreifen.

Ich denke übrigens, das lässt sich mit normalen Textdateien genauso umsetzen (Wenn du nur vier Texte hast, ist der Overhead vom XML bald größer als der eigentliche Inhalt).

Du kannst z.B. sowas machen:

PHP:
$text_file = './texte.txt';
if (!file_exists($text_file)) {
  die ('Datei fehlt!');
}
$text_array = array();
$fptr = fopen($text, 'r'):
while (!feof($fptr)) {
  $text_array[] = fgets($fptr, 4096);
}
fclose($fptr);

$current_line = date('z') % (count($text_array) - 1);
echo $text_array[$current_line];

Das obere Beispiel erwartet eine Datei 'texte.txt', in der jeder Text eine eigene Zeile hat. Das Skript sollte jeden Tag einen anderen Text anzeigen, und wenn alle mal angezeigt worden sind, fängt es wieder von vorne an. Ich hab's allerdings nicht getestet...
 
Zuletzt bearbeitet:
Zurück
Oben