burghi'sphp-dummies.de
PHP für Einsteiger und Fortgeschrittenere - an laufenden Scripten erklärt
10.02.2012, 09:57 Uhr - Impressum
Schließt einen offenen Dateizeiger
Liest eine Datei komplett in ein Array
Liest die gesamte Datei in einen String
Öffnet eine Datei oder URL
Schreibt Binärdaten in eine Datei
Wandelt Sonderzeichen in HTML-Codes um
Gibt Variablen-Informationen in lesbarer Form aus

Tutorials - Erste Schritte - Files lesen und schreiben - In Datei schreiben

Tutorials - Erste Schritte
Files lesen und schreiben: In Datei schreiben
In eine Datei zu schreiben ist schon etwas komplizierter, aber nicht unschaffbar:
Hierfür muss man erst mal nen Pointer auf ne Datei erstellen.
Das macht man mit fopen( )
Man gebe den Dateinamen und als zweiten Parameter an, für was man die Datei öffnen möchte:

'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.


Das der offizielle Text dazu...
ich würde sagen im Beispiel nehme man mal 'w' - Damit wird dann die Datei immer neu erstellt, ist also leer
<?php
$fp = fopen("safedir/textfile.txt", "w");

fclose($fp);
?>
Zu fopen gehört auch immer dazu, den FilePointer ($fp) wieder zu löschen mit fclose( )
Sollte man ihn vergessen, is das aber eigentlich nur ein Schönheitsfehler ---
Ausser man versucht, im selben Script nochma mit fopen( ) auf die selbe Datei zuzugreifen.
Das wird dann, wenn vorher nicht geschlossen wurde, gnadenlos in die Hose gehen

Ebenso wenn man die Linux-Dateizugriffsrechte nicht beachtet...
Unter "File Upload" gibts einen Auszug darüber, wie man die Verzeichnisse "vorbereiten" muss, in denen man schreiben möchte (Dateirechte)

Ja so zurück zum Script, die Datei ist, wenn alle Rechte richtig sind und alle Pfade existieren, dur fopen( ) erstellt worden.
Mit fwrite( ) kann man nun beliebigen Text in die Datei schreiben:
benutzte Codefiles safedir/textfile.txt
<?php
$fp = fopen("safedir/textfile.txt", "w");     /* Textdatei zum Schreiben öffnen und löschen */
fwrite($fp, "Ich bin Text");
fclose($fp);     /* Textdatei schließen */

$inhalt = file_get_contents("safedir/textfile.txt");

echo "In der Datei steht nun:<br />\n";
echo $inhalt;
?>
Auch Formularkram geht so in eine Datei rein:
(Damit es immer ans Ende der Datei angefügt wird, wird fopen mit dem Parameter "a" ausgeführt und zusätzlich zum Formularfeld noch ein"\n" für "neue Zeile" mit in die Datei geschrieben)
benutzte Codefiles safedir/reinschreib.txt
gesetzt in $_POST 'textfeld', 'absenden'
<?php     /* Textdatei mit a ( = "attach" = "anhängen") öffnen */
$fp = fopen("safedir/reinschreib.txt", "a");

                    /* Text aus dem Formular + "neue Zeile (\n)" in Datei speichern */
fwrite($fp, htmlspecialchars($_POST['textfeld']) . "\n");

                    /* Textdatei schließen */
fclose($fp);

$inhalt = file("safedir/reinschreib.txt");
echo "<pre>";     /* (mit <pre> schaut print_r besser aus) */
print_r($inhalt);
echo "</pre>";
?>
FormularQuelltext anzeigen
<html>
     <form method="post" action="/script.php">
          <input type="text" name="textfeld">
          <input type="submit" name="absenden" value="Script starten">
     </form>
</html>
© 2004-2005 - Impressum