Anzeige
Tutorialbeschreibung

Schreiben mit PHP Teil 1

Schreiben mit PHP Teil 1

Zunächst sollte man meinen, dass das einfach ist. Aber, es gibt auch einige Sachen, die man zumindest bedenken sollte!
Warum 2 Teile? Nun man muss ‚das Schreiben mit PHP’ stark trennen, zwischen jenem, wo mit einem PHP-Code 1. in eine Datei geschrieben wird  o d e r  2. in eine Tabelle in einer Datenbank geschrieben wird!


Als erstes legen wir eine <form> fest, die den Eintrag vornimmt, nennen wir sie form.php:

<?echo ’<form method=“POST“ action=“write.php“’?> 
            < input type=”text” size=”50” name=”texteingabe”>
            < input type=”submit” name=”submit” value”Schreiben”>
            </form>’;?> 

SCHREIBEN: 
Wir kennen alle folgenden Code, in der folgenden Datei: write.php 

<?if  (isset($_POST['submit'])) 
 
 {  $fp1=fopen(“zu_beschreibende_file.txt","w"); 
  fwrite($fp1,(nl2br($_POST[’texteingabe’]))); 
  fclose($fp1);} 
  else 
  {echo’’Schreibvorgang klappte nicht!;}?>

… jetzt sehen wir uns den code genauer an: 
if(isset($_POST['submit'])) <- das ist eine normale Kontrollstruktur, die nur dann den Schreibvorgang einleitet, wenn submit geklickt wurde. Gehen wir davon aus, dass geklickt wurde. 
… dann wird folgendes in der Kontrollstuktur gemacht: 

  1.  beschreibe die file zu_beschreibende_file.txt indem die file geöffnet wird.
    … aber diese file muss zuerst geöffnet werden (fopen()), dass sie beschrieben werden kann  

  2. 2. also muss eine Funktion vorher ausgeführt werden, bevor unsere file beschrieben werden kann!

    Nun besteht offenbar ein Dilemma, 2 Funktionen in einen Kontrollstruktur, aber wie?  … am besten mit einer Variable für eine Funktion, dort wieder am besten jene Funktion, die zunächst die file namentlich nennt, die wir benötigen, damit die Variable später auch für die dritte Funktion zur Verfügung steht. 
    Zum Schreiben benötigt man also 3 Funktionen in PHP: 
    a. fopen() <- Sie dient dazu eine file (zur Beschriftung) zu öffnen oder (sollte diese file nicht vorhanden sein) diese file erst zu generieren, also zu erzeugen (Ein wichtiges Detail, das fopen() leistet) 
    b. fwrite() <- das ist die Funktion, die schreibt!  … aber wieso wird (trotz fwrite() – das ist ja deutlich genug?) noch einmal “w“ geschrieben? Einfache Antwort: fwrite() sagt noch nichts darüber aus, wie geschrieben wird, d.h.: ob überschrieben oder an vorhandenen Text neu dazugeschrieben wird (“a“) 
    c. fclose() <- mit dieser Funktion wird unsere file „zu_beschreibende_file.txt“ geschlossen! 
    Nicht überschreiben, sondern dazuschreiben: 

Oben haben wir gesehen, dass unser Code eigentlich ...

<?

if 
(isset($_POST['submit'])) 
 
 { $fp1=fopen(“zu_beschreibende_file.txt","a"); 
  fwrite($fp1,(nl2br($_POST[’texteingabe’]))); 
  fclose($fp1);
  }  
  else 
  {
  echo’’Schreibvorgang klappte nicht!;
  }

?> 

... völlig ident bleiben kann, außer dass “w“ muss auf ein “a“ getauscht werden, schon wird der neue Text angeschlossenen an den bisherigen, ABER WIE?  … absatzweise, anschließend Zeile für Zeile oder wie? 

Antwort: Der Text wird nach dem letzten Buchstaben (Zahl) angeschlossen … Der Dateizeiger (mit “a“ als Schreibbefehl) rückt also an das Zeichenende. Das ist deshalb wichtig zu bedenken, weil der nachstehende Text unmittelbar an das Zeichenende geschrieben wird, wenn man in unserem Code oben nichts ändert! 

Sonst gäbe es dieses unschöne Ergebnis, beim hintereinander eintragen vo 2 Namen: Anton MüllerOtto Huber … 

Also in den obigen Code Formatierungszeichen, je nach Wunsch rein!

<?

if 
 (isset($_POST['submit'])) 
 { $fp1=fopen(“zu_beschreibende_file.txt","a"); 
  fwrite($fp1,(nl2br($_POST[’texteingabe’]).’ &nbsp;’)); 
  fclose($fp1);
 } 
  else  
 {
 echo’’Schreibvorgang klappte nicht!;
 }

?>
 

 Ausgabe: Anton Müller Otto Huber … 

 …oder: 

<?

if 
 (isset($_POST['submit'])) 
 {   $fp1=fopen(“zu_beschreibende_file.txt","a"); 
  fwrite($fp1,(nl2br($_POST[’texteingabe’]).’ <br />’)); 
  fclose($fp1);
 } 
  else 
 {
 echo’’Schreibvorgang klappte nicht!;
 }

?>
 

 Ausgabe: Anton Müller 

              Otto Huber … 

Es gäbe noch viel zu fwrite() zu sagen, aber das würde diesen Rahmen sprengen, weiterführend ist aber sicher das Handbuch in http://at.php.net/manual/de/function.fwrite.php 

DVD-Werbung
Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von Malhadra
  • 02.06.2011 - 10:53

sehr schönes Tutorial...danke schön

Portrait von duffkess
  • 03.03.2010 - 09:11

an sich gut aber ich finde du bist nicht darauf eingegangen wo die Datei gespeichert wird, wie man einen Pfad angiebt und wie man z.B im Formular direkt den Pfad und den Dateinamen bestimmt

Portrait von alejeune
  • 24.11.2009 - 19:55

wie immer sehr hilfreich!

Portrait von jelllo
  • 28.10.2008 - 08:50

gut erklärt und danke

Portrait von scuro11
  • 02.08.2008 - 01:06

sehr sehr gut!!!!...

Portrait von Luriel
  • 25.05.2007 - 12:40

danke sehr hilfreich

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 17.07.2006 - 16:36

Für mich als Anfänger wirkt es etwas sehr kurz.
Trotzd der fülle der Informationen

Portrait von skywalkerluk
  • 22.06.2006 - 16:03

cool wußte gar nicht dass das geht! Danke

Portrait von lomion
  • 06.06.2006 - 09:23

sehr gute erklärung der fwrite/fopen/fclose befehle...ansonten wirr geschrieben..ohne direkte erklärung zu den einzenen befehlen, die drumherum existieren..wie schleifen etc...
hätte vielleicht auch den rahmen gesprengt..

x
×
×