GB ohne MySQL

Spencer

Grünschnabel
grützi miteinand'r.. folgendes problem beschäftigt mich:

ich hab nen code wie ich einträge in ne .txt datei schreiben kann. das problem ist nur das die einträge dann immer von oben nach unten sind, ich würde aber gerne den neuesten eintrag oben haben und nicht unten.. kann mir jemand helfen?

hier mein bisheriger code:

------------------------------------------------------------------

<?
//
$dateiname = "eintrag.txt";
//
if(isset($_POST["text"]) && $_POST["text"] <> "")
{
$zeile = "<tr>
<td>$eintrag</td>
</tr>";
//
$datei = fopen($dateiname, "a");
if($datei);
{
fputs($datei, $zeile);
fclose($datei);
}
}
//
if(file_exists($dateiname))
{
$datei = fopen ($dateiname , "r");
if($datei)
{
while($zeile = fgets($datei, 255))
{
echo stripslashes($zeile) . "";
}
fclose($datei);
}
}

?>

------------------------------------------------------------------

bitte um hilfe :(
 
<?
//
$dateiname = "eintrag.txt";
//
if(isset($_POST["text"]) && $_POST["text"] <> "")
{
$zeile = "<tr>
<td>$eintrag</td>
</tr>";
//
$datei = fopen($dateiname, "r+");
if($datei);
{
fputs($datei, $zeile);
fclose($datei);
}
}
//
if(file_exists($dateiname))
{
$datei = fopen ($dateiname , "r");
if($datei)
{
while($zeile = fgets($datei, 255))
{
echo stripslashes($zeile) . "";
}
fclose($datei);
}
}

?>

'r' Öffnet die Datei nur zum Lesen und positioniert den Dateizeiger auf den Anfang der Datei.
'r+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.
'w' Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.
'w+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
'a' Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
'a+' Öffnet die Datei zum Lesen und Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.


hättest du dich richtig informiert, wäre das wohl die leichteste übung gewesen das rauzufinden!

hast das script auch nicht selbst geschrieben, sonst hättest du diese infos von selbst gefunden!
 
Bei mir funktioniert das mit dem r+ irgendwie nicht.

PHP:
 $br = "<br>";
 $brmuch = "<br><br><br><br><br><br>";
 $entrydat = fopen("./data/data","r+");
 $input = $brmuch.$name.$br.$comment;
 fputs($entrydat, $input); 
 fclose($entrydat);

is zwar nicht ganz so toll, aber mit w geht es wunderbar. Dann wird ja aber der Dateizeiger an das Ende der Datei gesetzt. Wenn ich r+ nehme geht das $input aber irgendwie nicht mehr richtig. Dann zeigt er mir vom <br> z.B. noch > einfach an.
 
aha ........ und welchen sinn machen die 150 <br>? html stellt man nicht in die datein.

mach doch mal eine vernünftigen inhalt in eine datei und versuch es erneut. seh dir die datei *.txt an und teste das gleiche noch mal mit deinem obigen code und seh dir die datei noch mal an. dann nehm mal einen anderen html-code und trage diesen in die datei ein. öffne sie und seh dirs an.

was ist so tragisch daran zu experimentieren?
 
Hallo,

du sollst nichts anderes nehmen, sondern nur "<br>" nicht mit in die Textdatei schreiben, weil HTML hat da nichts zu suchen.

Füge diese Umbrüche einfach nachher beim Abfragen hinzu.
Dann sollte r+ auch funktionieren.

Gruß

Nephlim
 
Toll, und wie soll das gehen, wenn ich einfach nur die Textdatei include?

Außerdem überschreibt er mir jetzt mit r+ die ganze Datei.
 
Zuletzt bearbeitet:
Hallo,

indem du aus dem einfachen includen einfach eine Schleife machst.

z.B. so:
PHP:
<?php

$fp = file( "zuladendeDatei.txt" );
krsort($fp); /* Damit ist immer der neueste Eintrag ganz oben. Wenn du neue Zeilen am 
Ende hinzugefügt hast.*/
for( $i=0; $i < sizeof( $fp ); $i++ )
{
  echo "<br><br><br><br><br><br>\n";
  echo $fp[$i] . "\n";
  echo "<br>";
}

?>

Gruß

Nephlim
 
Zuletzt bearbeitet:
Zurück