Werte aus einer txt Datei auslesen

helga

Mitglied
Hallo Zusammen,

ich habe in PHP ein Formular progarmmiert, welches die eingegebenen Werte in einer txt Datei speichert. jetzt will ich diese wie in einer Art Gästebuch auf einer Webseite ausgeben. Klappt soweit auch ganz gut.
Nur soll jetzt auf einer weiteren Seite stets nur der neuste Eintrag zu shene sein.
Ich will also die txt Datei in zwei Webseiten ausgeben, auf der einen die kompletten Einträge, auf der anderen nur der aktuelle.

Wie kann ich das realisieren?

Gruß
Helga
 
Wen du uns verrätst, wie deine TXT aufegbaut ist, kann man dir sicher helfen.

Falls du den HTML-Code direkt in die TXT speicherst, wird es schwierig.
Mach es am besten so, dass du alle Einträge, z.B. durch ein |#+#| trennst, und darin die einzelnen Felder wieder durch z.B. ein |#| trennst:
Code:
1. Eintreag, 1.Feld|#|2.Feld|#|3.Feld
|#+#|2. Eintrag, 1. Feld|#|usw.
Dann kannst du es so auslesen:
PHP:
$txt_data = explode("|#+#|", implode("", file("deine.txt")));
So, nun hast du in txt_data ein Array, dass ale Einträge beinhaltet, allerdings eben noch durch |#| getrennt.
Wenn du nun immer das neueste am Ende speicherst, dann kannst du die Reihenfolge einfach mit array_reverse vertauschen:
PHP:
$txt_data = array_reverse($txt_data);
foreach ($txt_data as $txt_tmp) {
  $txt_tmp = explode("|#|", $txt_tmp);
  foreach($txt_tmp as $tmp_tmp) {
    echo $tmp_tmp."<br>";
  }
  echo "<br>";
}

Gut der Code ist jetzt nicht vom feinsten Stil, aber du kannst es ja noch umändern.
 
irgendwie funktioniert das ganze nicht, kann ich nicht die Einträge in zwei txt dateien speichern? Das würde die Sache irgendwie vereinfachen, wenn dies möglich wäre.


}
$Inhalt = file("gaestebuch.txt");
$datei = fopen("gaestebuch.txt","w");
fputs ($datei, $eintrag . "\n");
for($x=0; $x<count($Inhalt); $x++) {
fputs( $datei, $Inhalt[$x] );
}
 
sorry, bin irgendwie auf abschicken gekommen, also obe, das ist der code, mit welchem ich in die txt datei eintrage, momentan werden immer alle einträge gespeichert. ist es möglich, dass ich nochmals in eine txt speichere, bei der nur das aktuelle erhalten bleibt?
 
dass weiss ich, wie ich die änderung durchführe, damit es überschrieben wird. Mein Problem ist, wie ich es anstellen kann in zwei txt Dateien unterschiedlich speichern kann
 
$text = ereg_replace( "\015?\012\015?", "<br>", $text );

$eintrag = "<b><p>$ueberschrift</b><br><br>$text<br><br>";

$Inhalt = file("gaeste.txt");
$datei = fopen("gaeste.txt","w+");
fputs ($datei, $eintrag . "\n");
fclose($datei);


$Inhalt2 = file("compltt.txt");
$datei2 = fopen("complett.txt","w");
fputs ($datei2, $eintrag . "\n");
for($x=0; $x<count($Inhalt2); $x++) {
fputs( $datei2, $Inhalt2[$x] );


fclose($datei2);
echo "Der Eintrag wurde erfasst";
echo "<br><br><br>";
echo "<a href='../index.php'>zum Intranet</a>";
}
} else{

?>

ich bekommhier immer fehlermeldung. ist es überhaupt möglich das so amzugehen? mit den zwei txt?
 
Ok, dann nochmal Schritt für Schritt:

$eintrag soll an die Datei complett.txt angehängt werden und als einziger Eintrag in gaeste.txt stehen:

PHP:
$complett = fopen("complett.txt", "a");
fputs($complett, $eintrag);
fclose($complett);

$gaeste = fopen("gaeste.txt","+w");
fputs($gaeste, $eintrag);
fclose($gaeste);
Das müsste eigentlich funktionieren.

Gruß
Falk
 
hallo helga,

deinen ansatz find ich ganz richtig...

1. alles Texte in eine Datei...
2. eine datei immer überschreiben...


du hast die compltt.txt falsch geschrieben oder soll das so???
---------------------------------------------
$Inhalt2 = file("compltt.txt");
$datei2 = fopen("complett.txt","w");
fputs ($datei2, $eintrag . "\n");
for($x=0; $x<count($Inhalt2); $x++) {
fputs( $datei2, $Inhalt2[$x] );
---------------------------------------------

wie sieht es mit den rechten aus???

ansonsten scheint der code richtig...

gruss snail
 
Zurück