Schreibfunktion in Textdatei

webdesign

Mitglied
Hallo Zusammen
Ich habe mal eine Frage, weiss aber nicht, ob sie schon mal in einem Thread angesprochen wurde, konnte sie auch nicht suchen, da ich nicht genau weiss unter welchem Suchbegriff das zu finden sein könnte.
Also hier mein Anliegen:

Ich habe ein Gästebuch programmiert, wo jeder Eintrag in eine Textdatei geschrieben wird. In die Textdatei werden jedoch auch alle HTML Tags mit hinein geschrieben.
Was ich möchte, ist so etwas wie eine Tabelle in einer Datenbank nur mit einer Textdatei. Ich hatte das mal irgendwo gesehen, weiss aber nicht mehr wo, sch***.
Die Einträge sollten folgendermassen aussehen:

eintraege.txt
"
name; vorname; datum; e-mail; homepage; nachricht;
name; vorname; datum; e-mail; homepage; nachricht;
name; vorname; datum; e-mail; homepage; nachricht;
name; vorname; datum; e-mail; homepage; nachricht;
name; vorname; datum; e-mail; homepage; nachricht;
"

So sollten dann die Einträge in der Textdatei aussehen, ohne jegliche HTML Tags. Ich möchte danach dann jede einzelne Zeile auslesen und die Daten bearbeiten können.
Wie mache ich das? Muss ich da irgendwie das Layout, welches ich ja dann durch HTML und CSS machen kann, einfach erst bei der Ausgabe definieren?

Gruss Jonas
 
Hallo Mario
Ich glaube du hast mich falsch verstanden.
Meine Frage war nicht wie ich die Einträge danach wieder ändern kann.
Also noch einmal ein Versuch.
Ich erkläre mal ganz genau was ich basteln möchte:
Ich mache für einen Schauspieler eine Homepage. Ich möchte jedoch nicht immer alles für ihn aktualisieren und darum möchte ich bei einigen Rubriken etwas programmieren, wo er selbst die Einträge verwalten kann. Konkret geht es um seinen Tourneeplan wo jede Zeile eine Aufführung ist. Da die Homepage jedoch schnell fertig sein muss und ich keine Zeit habe, mich mit der Datenbankprogrammierung auseinander zu setzen, möchte ich das ganze in eine Textdatei packen. Man sollte dann bei jedem Eintrag, bzw. bei jeder Zeile einzeln, alle Daten einzeln verändern oder löschen können.
Dies mal zum Voraus. Mit deiner Antwort hast du dies ja beantwortet, das ist klar.
Meine Frage lautete jedoch anders:
Wenn man über ein Formular jetzt einen Eintrag schreibt, bzw. eine Zeile, dann sollten alle Daten nacheinander in eine Zeile geschrieben werden. Es sollte dann so aussehen, wie in meinem ersten Beitrag:

Tag;Datum;Zeit;Ort;Reservation;
Tag;Datum;Zeit;Ort;Reservation;
Tag;Datum;Zeit;Ort;Reservation;
Tag;Datum;Zeit;Ort;Reservation;
Tag;Datum;Zeit;Ort;Reservation;
Tag;Datum;Zeit;Ort;Reservation;
Tag;Datum;Zeit;Ort;Reservation;

Ein Eintrag = eine Zeile

Das heisst, dass ich keine html tags in der Textdatei habe. Die einzelnen Daten einer Zeile kann ich danach jedoch nicht mehr mit Variablen ansprechen, da sie ja schon in die Textdatei geschrieben wurden. Die Ausgabe sollte dann jedoch in etwa so aussehen:

<table>
<tr>
<td>Tag</td>
<td>Datum</td>
<td>Zeit</td>
<td>Ort</td>
<td>Reservation</td>
</tr>
</table>

Und zwar von jedem Eintrag. Wie mache ich das? Wo muss ich da das Layout einfügen, bzw. die table tags.
Ich hoffe, dass ich mich verständlich ausdrücken konnte.

Vielen Dank schon mal.
Gruss Jonas
 
zur Ausgabe:
PHP:
    $lines = file ('deine_datei.txt');
    echo "<table>";
    foreach ($lines as $line_num => $line) {
       echo "<tr><td>" . str_replace (";","</td><td>",$line) . "</td></tr>"; 
    }
    echo "</table>";

das Speichern in die Datei gibts morgen... Bin jetzt zu müde dafür :)

Mario
 
Vielen Dank für die Antworten.
Ich habe bei den Tutorials jetzt eine recht gute Anleitung zu speichern, auszugeben und wieder zu bearbeiten. Ich versuche mal daraus etwas schlaues für mich herauszupicken.
Wenn dort nicht weiter komme, dann schreibe ich wieder.

Gruss Jonas
 
Hallo Zusammen
Ich habe jetzt mal anhand des Tutorials versucht etwas zu basteln, es wird jedoch ein Fehler ausgegeben, auf Linie 55, das heisst dort wo das Array "$eintrag" definiert wird für die Aufteilung.
Hier einmal der Programmiertext:
PHP:
 $new_tag = $HTTP_POST_VARS['new_tag'];
 $new_datum = $HTTP_POST_VARS['new_datum'];
 $new_zeit = $HTTP_POST_VARS['new_zeit'];
 $new_stueck = $HTTP_POST_VARS['new_stueck'];
 $new_ort = $HTTP_POST_VARS['new_ort'];
 $new_location = $HTTP_POST_VARS['new_location'];
 $new_reservation = $HTTP_POST_VARS['new_reservation'];
 

 $new_datum2 = date("d.m.Y");
 $new_zeit2 = date("H:i");

 $datei = "aktuell.txt";


 $fehler = "Error.<br><br><a href='javascript:history.back()'>zurueck</a>";
 
 

 if($post)

	{
	if(($tag == "")||($datum == "")||($stueck == ""))
		{
 		echo "$fehler";
		}
 	else
 		{
 		$fp = fopen($datei, "a+"); // Datei zum lesen öffnen
 		
		// Neue Formularelemente
		$data = "$new_tag |-| $new_datum |-| $new_zeit |-| $new_stueck |-| $new_ort |-| $new_location |-| $new_reservation |-|\n\r";
		
		// daten in Datei speichern
		fputs($fp,$data);
		fclose($fp);
		}
	}




// die Einträge auslesen &anzeigen

if(file_exists($datei))
	{
	$inhalt = file($datei,"r");
	$anzahl = count($inhalt);
		for($i = 0; $i < $anzahl; $i++)
		{
			$newinhalt = array_reverse($inhalt) //Inhalt rückwärts auslesen
			$eintrag = explode(" |-| ",$newinhalt[$i]); //Inhalt zerteilen
			// Variablen definieren
			$tag = $eintrag[0];
			$datum = $eintrag[1];
			$zeit = $eintrag[2];
			$stueck = $eintrag[3];
			$ort = $eintrag[4];
			$location = $eintrag[5];
			$reservation = $eintrag[6];
		
			// Daten ausgeben
			echo"<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td>$tag</td><td>$datum</td><td>$zeit</td><td>$stueck</td><td>$ort</td><td>$location</td><td>$reservation</td></tr></table>\n";
		}
	} 
	else 
	{ 
	echo"Es wurde keine Datei gefunden"; 
	}

Ich hoffe ihr könnt mir weiter helfen.
Vielen Dank schon mal.
Gruss Jonas
 
Danke ;-)
Das war der Fehler, jetzt funktionierts.
Manchmal ist es gut, wenn jemand anderes noch einmal den Programmiertext anschaut, weil man oft selber kleine Fehler übersieht.

Ich mache mich jetzt mal noch daran, wie ich die Einträge Bearbeiten kann danach und wie ich die Einträge nummerieren kann.

Nochmals vielen Dank und vielleicht bis später ;-)

Gruss Jonas
 
Zurück