Lektion 16: In eine Text-Datei schreiben

In der vorigen Lektion haben wir gelernt, aus einer Textdatei zu lesen. Hier, in dieser Lektion, werden wir lernen, in eine Textdatei zu schreiben.

Die zwei Methoden sind ziemlich ähnlich, aber es gibt einen sehr wichtigen Unterschied: Sie müssen eine Schreiberlaubnis ("write permission") für die Datei haben. Das heißt, dass sich die Datei in einem Ordner befinden muss, für den Sie die nötigen Rechte haben.

Wenn Sie lokal auf Ihrem eigenen Computer arbeiten, können Sie die Rechte selbst setzen: Rechtsklick auf den Ordner und wählen Sie "Eigenschaften". Bei den meisten Webhostern haben Sie normalerweise einen Ordner, in dem das Schreiben erlaubt ist. Oft heißt dieser "cgi-bin", "log", "databases" oder etwas in der Art. Wenn Ihr Hoster dies zulässt, können Sie auch dort die Rechte selbst anpassen. Klicken Sie dann mit der rechten Maustaste auf einen Ordner in Ihrem FTP-Client und wählen "Eigenschaften", "Rechtevergabe" oder etwas ähnliches. Die Screenshots zeigen Ihnen, wie es mit FileZilla gemacht wird.

FileZilla

Weiteres finden Sie bestimmt auch im Supportbereich Ihres Webhosters.

Beachten Sie bitten, dass es die Textdatei sein muss, die in dem Ordner mit den Schreibrechten ist - nicht die PHP-Datei.

Die Textdatei für das Schreiben öffnen

In der gleichen Art und Weise wie für das Lesen, wird die Dokumentationfopen-Function für das Schreiben benutzt. Allerdings setzen wir den Modus jetzt auf "w" für Schreiben (writing) oder "a" für Anfügen (appending).

Der Unterschied zwischen Schreiben und Anfügen ist, wo sich der 'Cursor' befindet - entweder am Anfang oder am Ende der Textdatei.

In den Beispielen benötigen/benutzen wir eine leere Textdatei mit dem Namen textfile.txt - aber Sie können natürlich auch eine eigene Datei benutzen, wenn Sie möchten.

Lassen Sie uns jetzt zuerst die Datei für das Schreiben öffnen:


	<?php

	// Öffnet die Textdatei
	$f = fopen("textfile.txt", "w");

	// Schließt die Textdatei
	fclose($f);

	?>
	
	

Beispiel 1: Schreibe eine Zeile in die Textdatei

Um eine Zeile zu schreiben, müssen wir die Function Dokumentationfwrite benutzen. Dies funktioniert so:


	<html>

	<head>
	<title>In eine Text-Datei schreiben</title>
	</head>
	<body>
	
	<?php

	// Öffnet die Textdatei
	$f = fopen("textfile.txt", "w");

	// Schreibt in die Textdatei
	fwrite($f, "PHP macht Spaß!"); 

	// Schließt die Textdatei
	fclose($f);

	// Öffnet die Textdatei zum Lesen und liest den Inhalt aus
	$f = fopen("textfile.txt", "r");
	echo fgets($f); 

	fclose($f);

	?>

	</body>
	</html>
	
	

Da wir die Datei zum Schreiben geöffnet haben, wird die Zeile am Anfang der Datei eingefügt und überschreibt eine bereits existierende Zeile. Wenn wir stattdessen zum Anfügen öffnen, wird die Zeile am Schluß angefügt und es würde jedes Mal eine Zeile mehr.

Beispiel 2: Einen Textblock zu einer Textdatei hinzufügen

Natürlich ist es auch möglich, einen ganzen Block, anstatt einer einzelnen Zeile, hinzuzufügen. Dies geht so:


	<html>
	<head>
	<title>In eine Text-Datei schreiben</title>
	</head>
	<body>

	<?php

	// Öffnet die Textdatei
	$f = fopen("textfile.txt", "w");

	// Schreibt in die Textdatei
	fwrite($f, $_POST["textblock"]); 

	// Schließt die Textdatei
	fclose($f);

	// Öffnet die Textdatei zum Lesen
	$f = fopen("textfile.txt", "r");

	//  Liest den Inhalt aus
	echo fgets($f); 

	fclose($f);

	?>
	
	</body>

	</html>
	
	

In der nächsten Lektion sehen wir uns eine andere Art der Datenspeicherung an: Datenbanken.



<< Lektion 15: Aus einer Text-Datei lesen

Lektion 17: Datenbanken >>