Suche nach als

Datei verändern

Auf dieser Seite:

Datei Inhalt als String

PHP 4.3

file_get_contents()

So verändere ich eine bestehende Datei: file_get_contents() holt den ganzen Inhalt einer Datei als String in eine Variable (ohne include oder fopen). Aus der Variablen kann z.B. durch Unterteilung ein Array erstellt werden, das wiederum erlaubt einzelne Teile daraus zu manipulieren. Zum Schluss wird die Datei mit dem veränderten Array überschrieben.

<?php
 $contents
=file_get_contents("datei_content_raw1.txt");
 echo 
$contents;
?>
|Diese Datei dient nur dazu, |ausgegeben und ev. verändert zu werden. |Auch mit Sonderzeichen wie Tags, Zeilenumbrüchen\n |und den \"Backslasches\" kann gespielt werden.
|Hier noch ein paar 'whitespaces': 5 Tabs 10 Leerschläge |.

Datei Inhalt als Zeilen-Array

Mit implode() zum String, vor PHP 4.3

file(), implode()

Durch diesen Umweg erreichte man früher das selbe Resultat: zuerst wird die Datei mit file() in einen Array eingelesen, wobei eine Zeile einen Arrayeintrag erzeugt. Dann wird der Array mit implode() zu einem String aufgelöst.

<?php
 $farray
=file("datei_content_raw1.txt");
 
$inhalt=implode($farray);
 echo 
$inhalt;
?>
|Diese Datei dient nur dazu, |ausgegeben und ev. verändert zu werden. |Auch mit Sonderzeichen wie Tags, Zeilenumbrüchen\n |und den \"Backslasches\" kann gespielt werden.
|Hier noch ein paar 'whitespaces': 5 Tabs 10 Leerschläge |.

Mit explode() zu weiteren Unterteilungen

file(), explode()

<?php
$zeilen
=file("datei_content_raw2.txt");
// solange $i -das ist die aktuelle Zeile- Null 
// und kleiner als die Gesamtzeilenzahl ist, 
// z&auml;hle fortlaufend 1 dazu
for($i=0;$i<count($zeilen);$i++) {
// unterteile mit | als Trennzeichen die aktuelle Zeile 
// und fasse das in den Array 'inhalt'
 
$inhalt=explode("|",$zeilen[$i]);
// schreibe HTML-Code, entferne whitespaces, 
// schreibe den String nach dem 2. |, schreibe HTML-Code, 
// schreibe den String nach dem 1. |, schreibe HTML-Code,
 
print "<a href=\"".trim($inhalt[2])."\">".$inhalt[1]."</a><br />\n";
// die Schleife beginnt wieder bei 'for', bis alle Zeilen durchgearbeitet sind
}
?>

String als Datei Inhalt

Nur Code Beispiel, ab PHP 5

file_put_contents();

Diese Funktion ist identisch mit der Folge der drei Funktionen fopen(), fwrite() und fclose() um Daten in eine Datei zu schreiben. Falls die Datei nicht existiert, wird sie erstellt, sonst wird die Datei überschrieben, es sei denn, die Flag FILE_APPEND wurde gesetzt, dann wird am Ende angefügt.

<?php
 file_put_contents
("datei_content_fill.txt","Ich &uuml;berschreibe eine Datei. ");
 
file_put_contents("datei_content_fill.txt","Ich h&auml;nge einen String ans Ende. "FILE_APPEND LOCK_EX);
?>
Ich überschreibe eine Datei. Ich hänge einen String ans Ende.

Teile einer Datei überschreiben

Eine Datei vollständig überschreiben, oder am Anfang bzw. Ende etwas hinzufügen kann ich auch mit fwrite(); oder fputs();. Eine Datei bearbeiten ist aber nur indirekt möglich: Zuerst lese ich die Datei in eine Variable ein, die Variable wird dann manipuliert, dann schreibe ich die Variable in die Datei zurück, ich überschreibe also die ganze Datei vollständig.

<?php
// Datei in Variable lesen
$content=file_get_contents("$fileName");
// suchen und ersetzen in der Variablen
$content=str_replace($alt,$neu,$content);
// Datei vollständig mit der Variablen überschreiben
file_put_contents("$fileName"$content);
?>


Valid XHTML 1.0 Check den Code.

Ordnerfunktionen >> << Datei erstellen, ergänzen
Ich bin hier: > PHP Lehrling >>> Datei verändern
 
HTML und XHTML | CSS | JavaScript und DHTML | PHP und MySQL | Andere Sprachen
Letzter Update: 03.09.2010