PHP fopen - Dateien einlesen und Dateien schreiben

Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 
Script Seite

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog Verzeichnis

Goneo.de
Bei diesen Anbieter bekommt man Webspace, Domains,...
http://www.Goneo.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
http://www.Artfiles.de
 
 

Dateihandling mit PHP

Sie befinden sich: Home > Php > Dateihandling mit PHP

Um Dateien mit PHP einlesen zu können benötig man zunächst ein sogenanntes "dateihandle", was im Grunde genommen nichts anderes als eine allgemein definierte PHP Variable darstellt.

1 <?php
2 $handle
= fopen("c:/testdatei.txt","r");
3
/* an dieser Stelle wird das handle erzeugt
4 und mit der Funktion fopen() praktisch mit
5 der Datei testdatei.txt zum Lesen verknüpft
6 */
7
fclose ($handle);
8
/* lässt das handle von der Datei
9 und gibt sie somit wieder frei
10 */
11
$dataname="testdatei_2.txt";
12
$handle_2=fopen($dataname,"r");
13
/* versucht die in der Variablen
14 $dataname angegeben Datei zu öffnen
15 */
16
fclose($handle_2);
17
?>

Das zweite Argument, im oben angeführten Beispiel "r", sagt aus wie die Datei geöffnet werden soll.

"r" zum lesen öffnen
"r+" zum lesen und schreiben öffnen
"w" zum schreiben öffnen leert die Datei
"w+" zum schreiben und lesen öffnen leert die Datei
"a" Datei zum Anhängen öffnen,hierbei wird der Dateizeiger ans Ende gesetzt wenn die Datei nicht existiert wird sie angelegt.
"a+" wie "a" jedoch kann auch gelesen werden

Um in der geöffneten Datei schreiben und lesen zu können kommen folgende Befehle zur Anwendung:

$var = fread ( handle, lenght ); liest eine durch lenght bestimme menge Zeichen ein.
$var = fscanf ( handle , mixed string , variables ); liest eine Zeichenkette formatiert aus.
$var =fgetc ( handle ); liest das nächste Zeichen in der Datei ein
$var = fgets ( handle , lenght ); liest eine Zeichenkette mit maximal lenght Zeichen ein, wird häufig verwendet um in Textdateien zeilenweise zu lesen, da ein EOL ( End Of Line ) als Abbruchkriterium gilt.
fwrite ( handle , content ); schreibt die in content definierte Zeichenkette in die Datei. content kann auch eine Variable sein.
fseek ( handle , offset , where ); wird verwendet um den Datenzeiger an eine bestimmte Stelle in der Datei zu setzen.
$var = ftell ( handle ); übergibt die aktuelle Position des Dateizeigers bezogen auf den Dateianfang an $var.
feof( handle ); mit dieser Funktion kann der Zustand des Handles überprüft werden

Im folgenden Beispiel werden alle oben angeführten Funktionen außer feof() sowie fgetc () verwendet.

1 <?php
2
// Dateien mit PHP einlesen
3
$filename = "test.txt";
4
$somecontent = "Dieser Text geht in die Datei";
5
6
// prüft vor jedem anderen befehl ob die Datei schreibbar ist
7
if (is_writable($filename)) {
8
// im Folgenden wird die Datei im append
9 // mode ( Anhängemodus ) geöffnet
10 // der Dateizeiger wird automatisch ans
11 // Ende der Datei gesetzt, wo dann
12 // durch den Befehl fwrite () der Inhalt
13 // der Variablen $somecontent geschrieben wird
14
if (!$handle = fopen($filename, "a")) {
15 echo
"kann die Datei ($filename) nicht öffnen";
16 exit;
17 }
18
19
// schreibt den Inhalt von $somecontent in die Datei
20
if (fwrite($handle, $somecontent) === FALSE) {
21 echo
"kann nicht in die Datei ($filename) schreiben";
22 exit;
23 }
24 echo
"Erfolg, habe ($somecontent) in die
Datei ($filename) geschrieben"
;
25
26
// Ermittelt die aktuelle Position des
27 // Dateizeigers und gibt diese aus
28
$position=ftell($handle);
29
30 echo
"Der Dateizeiger steht
aktuell an der Stelle ($position)"
;
31
32
// setzt den Dateizeiger an die Anfangsposition der Datei
33
fseek($handle,0);
34
35
// liest die erste Zeile aus und zeigt sie an
36
$buffer = fgets($handle, 4096);
37 echo
$buffer;
38
39 } else {
40 echo
"Die Datei $filename ist nicht schreibbar";
41 }
42
fclose($handle);
43
?>

Um ganze Dateien in PHP einlesen zu können kann man auch die Funktion fread() verwenden wie folgendes kleines Beispiel deutlicht macht.

1 <?php
2
// schreibt den kompletten Inhalt er Datei als
3 // String in die Variable $contents
4 // zu beachten ist das die Variable $filename
5 // nicht nur den Dateinamen sondern einen
6 // kompletten Pfad enthält. Dieser sollte bei
7 // kritischen Dateioperationen immer vom
8 // Stammverzeichnis aus angegeben sein.
9
10
$filename = "/usr/local/something.txt";
11
$handle = fopen($filename, "r");
12
$contents = fread($handle, filesize($filename));
13
fclose($handle);
14
?>



weiter Die Funktion date() in PHP