[PHP] Datei erstellen und in Datei schreiben

-=Renegade=-

Lt. Junior Grade
Registriert
Nov. 2006
Beiträge
434
Hey!


Also gleich mal vorweg, ich weiß zwar, wie man PHP in HTML einbindet und kenn die Basics, bin aber sonst noch relativ neu in PHP und werd das leider auch aus Zeitmangel noch auf längere Zeit bleiben :(

Trotzdem bräucht ich kurz ein wenig PHP, und zwar würd ich gern am Server eine neue Datei erstellen und in diese schreiben (über Formulareingaben)

Mit welchen Befehlen kann ich das realisieren?


so far
thx & mfg
 
Mit fopen() einen File Handle erzeugen, mit fwrite() in die Datei schreiben und mit fclose() den Handle wieder schließen:
PHP:
  if ($fp = fopen('meine.datei', 'w')) {
    fwrite($fp, "blabla\n");
    fwrite($fp, "noch mehr blabla\n";
    fwrite($fp, "schluß mit luschtich");
    fclose($fp);
  }

Der zweite Parameter von fopen() gibt an, in welchem Modus die Datei angelegt werden soll ('lesen', 'schreiben', 'lesen und schreiben', 'anfügen', jeweils mit der Option die Datei ggf. zu erstellen). Detaillierte Infos gibts im PHP Manual.

Für faule Säcke gibts unter PHP 5 noch file_put_contents():
PHP:
  file_put_contents('meine.datei', "blabla\nnoch mehr blabla");

greetings, Keita
 
Hm, so wie ich das bis jetzt mitbekommen habe, muss dazu aber die Datei bereits existieren, damit ich hineinschreiben kann.

Gibt es auch einen Befehl, der die Datei komplett neu erstellt, bevor hineingeschrieben wird?


so far
thx & mfg
 
http://de.php.net/fopen schrieb:
'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.

greetings, Keita
 
Ok, soweit wär das mal alles klar und funktioniert auch :)

Die Datei konnte er deshalb nicht öffnen, weil ich einen Fehler im Formular gemacht habe ;)

Jetzt hätt ich noch ne kleine Frage:
Wenn ich die Datei mit dem Parameter w öffne, setzt er den Dateizeiger auf den Anfang, und a würde ihn auf das Ende setzten. Ist es aber auch möglich, den Dateizeiger zB auf Zeile 11 zu setzten und dort etwas hinzufügen, ohne dass die darunter leigenden Zeilen überschrieben werden?


so far
thx & mfg
 
Das kann schon deswegen nicht gehen, weil es keine "Zeilen" in Dateien gibt, allenfalls Zeichen(folgen), die einen Zeilenumbruch repräsentieren. Desweiteren gibt es so gut wie keine Dateisysteme, die es erlauben mitten in eine Datei etwas einzufügen oder oder aus einer Datei etwas zu entfernen und den folgenden Rest vor oder zurück zu schieben.
Du mußt also die Datei einlesen, dort wo du etwas einfügen möchtest die Daten hineinschieben und die gesamte Datei speichern.

greetings, Keita
 
es gibt ne möglichkeit, aber die erfordert bisschen rechenkraft etc.
man geht her ließt die kompellte datei in ein array, das array durchsucht man dann nach der zeicenfolge wo man haben möchte und löscht diese raus... musst mit split, str_split, strlen, etc. arbeiten.... und wenn dein array/string wieder soweit zamme hast tuste die datei kommplet leeren und schriebst das array wieder rein...

Gruß Frostbeule2k
 
Ja ist klar, eigentlich geht es mir nur darum, ein RSS Feed upzudaten, ich denke, dass es dazu auch andere Methoden gibt, werd mich dafür mal umschauen.

Allerdings habe ich ein anderes Problem:

Das Script sieht bisweilen so aus, dass in ein Formular Feld etwas eingegeben wird, das ganze dann via POST an die PHP Verarbeitungsdatei weitergeschickt wird und dieser dann die Variablen interpretiert und in eine Datei schreibt.

Allerdings habe ich jetzt das Problem, dass wenn ich in das Textfeld " oder ' eingebe, diese in der Ausgabe mit /" und /' entwertet werden, was zur Folge hat, dass ich keine HTML Befehle eingeben kann. Gibt es eine Möglichkeit, auch das zu umgehen?


so far
thx & mfg
 
Kannst du uns mal den kompletten Quelltext von allem posten könntest. Würde mich selbst mal interessieren und so kann man auch den Fehler besser interpretieren.
MfG highweb
 
Versuchs mit stripslashes oder str_replace oder oder...
Schau Dich im Link ruhig mal um und lies auch die dortigen Comments.
Viele Wege - ähm Funktionen führen nach Rom. :p
 
Zuletzt bearbeitet:
Highweb schrieb:
Kannst du uns mal den kompletten Quelltext von allem posten könntest. Würde mich selbst mal interessieren und so kann man auch den Fehler besser interpretieren.
MfG highweb

Na ja, Fehler an sich ist es ja keine, hab ja noch nichtmal gewusst, wie es geht :)
Quelltext werd ich Online stellen, sobald es einigermaßen funktioniert, stripslashes sieht sehr viel versprechend aus, das werd ich dann mal testen. Danke.


so far
mfg
 
Es passt zwar nicht direkt hier hinein, aber ich brauche es in diesem Zusammenhang und wollte keinen eigenen Thread dafür erstellen :)

Kann man eine Text Datei direkt in ein Html File einbinden?

Also, dass in dieser Datei ein Text steht, der dann durch einen Befehl an einer bestimmten Stelle der Seite ausgegeben werden soll?


so far
thx & mfg
 
schreib ein Schlüsselwort in die HTML-Datei - zB. <placeholder />

danach lädst du die HTML-Datei und ersetzt das Schlüsselwort mit deinem neuen Inhalt - zB. mit der Funktion str_replace()

danach die Datei speichern/ausgeben
 
... oder auf folgendem Weg:
PHP:
<Hier steht mehr oder weniger viel HTML-Code />

<?php
$file_content = file_get_contents('bspdatei.txt');
echo $file_content;
?>

<Und hier auch wieder />
 
Zurück
Oben