Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Ankündigungen, News und Feedback > Tutorials > [PHP] Textdateien: Lesen und Schreiben von Inhalten
Antwort
 
Themen-Optionen
Alt 15.03.2005, 15:39   Nach oben    #1
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.590
Standard [PHP] Textdateien: Lesen und Schreiben von Inhalten

Textdateien: Lesen und Schreiben von Inhalten

Oftmals möchte man einfach nur zuvor erstellten Text in einer Textdatei ablegen bzw. den Inhalt einer solchen Datei auslesen, um ihn weiterzuverarbeiten, wie z.B. in einem Gästebuch.


Da sich der Programmcode aber im großen und ganzen immer gleicht schreiben wir uns zwei kleine Funktionen, die uns das ständige Implementieren des Lese- und Schreibvorgangs ersparen.



Eine Datei auslesen

Wir geben zu Beginn den Namen der Datei an, die wir auslesen wollen.
PHP-Code:
<?php

    $datei 
'test.txt';
    
?>
Es ist dabei egal, welche Endung die Datei hat. Die Endung, in diesem Fall .txt, ist frei wählbar.

Die Funktion "leseAusDatei()" erwartet als Übergabeparameter den Namen der Datei. In der Funktion wird abgesichert, dass die Datei existiert, das sie lesbar ist und das keine Fehler beim Lesen aus der Datei aufgetreten sind.
Nur wenn alle diese Prüfungen erfolgreich sind liefert die Funktion den Inhalt der Datei als Zeichenkette zurück.

PHP-Code:
<?php

    
function leseAusDatei$datei ) {
        if ( !
file_exists$datei ) ) {
            
printf'Die Datei %s konnte nicht gefunden werden.
                       <br />
                       Bitte Pfadangaben überprüfen.'

                       
$datei );
            return 
false;
        }

        if ( !
is_readable$datei ) ) {
            
printf'Die Datei %s konnte nicht gelesen werden'$datei );
            return 
false;
        }

        if ( !
$inhalt file_get_contents$datei ) ) {
            
printf'Es trat ein Fehler beim Lesen der Datei %s auf.'$datei );
            return 
false;
        }

        return 
$inhalt;
    }

?>

Es gibt mehrere Wege eine Datei auszulesen. Diese Codepassage
PHP-Code:
<?php

        
if ( !$inhalt file_get_contents$datei ) ) {
            
printf'Es trat ein Fehler beim Lesen der Datei %s auf.'$datei );
            return 
false;
        }

?>
kann auch mittels der Funktionen file() oder fread() realisiert werden. Dabei ist zu beachten, dass in diesen Fällen eine Verzeichnisresource (ein 'handle') mittels fopen() erstellt werden muss.

In diesem Beitrag wollen wir uns auf die Methode file_get_contents() beschränken.


In eine Datei schreiben

Die Funktion "schreibeInDatei()" erwartet als Übergabeparameter zum Einen den Namen der Datei und zum Anderen den einzufügenden Inhalt, also eine Zeichenkette.

Es wird wiederum getestet, ob die Datei existiert und ob sie die benötigten Schreibrechte besitzt.
PHP-Code:
<?php

    
function schreibeInDatei$datei$inhalt ) {
        if ( !
file_exists$datei ) ) {
            
printf'Die Datei %s konnte nicht gefunden werden.
                        <br />
                        Bitte Pfadangaben überprüfen.'

                        
$datei );
            return 
false;
        }

        if ( !
is_writable$datei ) ) {
            
printf'Die Datei %s kann nicht beschrieben werden'$datei );
            return 
false;
        }

        if ( !
$handle fopen$datei"w") ) {
            
printf'Die Datei %s kann nicht geöffnet werden'$datei );
            return 
false;
        }

        if ( !
fwrite$handle$inhalt ) ) {
            
printf'Es trat ein Fehler beim Schreiben des Inhalts in die Datei %s auf.'$datei );
            return 
false;
        }

        
fclose$handle );
    }

?>
In dieser Funktion wird nun das oben angesprochene Verfahren verwendet. Es wird eine Resource mittels fopen() erstellt und dann mit fwrite() der Inhalt in die Datei geschrieben.
Ab PHP 5 steht alternativ die Funktion file_put_contents() für das Schreiben in Dateien zur Verfügung.

Es ist zu beachten, dass der hier vorgestellte Quelltext sich nicht mit der Überprüfung des Inhalts oder der Bearbeitung mit Funktionen wie z.B. addslashes() oder strip_tags() befasst.

Das sollte dann nach individuellem Bedürfnis angepasst werden.

Die Funktionen "leseAusDatei" und "schreibeInDatei" können jetzt z.B. folgendermaßen vernwendet werden.

PHP-Code:
<?php

    $inhalt 
leseAusDatei$datei );

    if( 
trim($inhalt) == '' ) {
        
$inhalt 0;
    }

    echo 
'<br />Inhalt der Textdatei: ' $inhalt  '<br />';

    
schreibeInDatei$datei, ++$inhalt );

    echo 
'<a href="' $_SERVER['PHP_SELF'] . '">Seite neu laden</a>';

?>
Diese Codepassage liest den Inhalt einer Datei aus und überprüft, ob überhaupt etwas in der Datei drinsteht. Ist dies nicht der Fall wird der Variablen "$inhalt" der Zahlenwert "0" zugewiesen.
Nach der Testausgabe wird dann die Datei neu beschrieben. Als einzufügender Text wird die Variable "$inhalt" inkrementiert, also um eins erhöht.
Durch den Link, der die Seite selbst aufruft haben wir uns somit einen ganz simplen Counter gebaut


Ich rate jedem, der sich mit Textdateien und dem Dateisystem als solchem beschäftigen möchte das entsprechende Kapitel im Manual durchzuarbeiten. Dort findet man jede Hilfe, die man benötigt.
XXXVII. Funktionen des Dateisystems (deutsch)
XXXVII. Filesystem Functions (englische Originalversion)

Viel Spaß beim Anwenden

Ich hoffe, dass Euch die Antwort auf die Frage 'wie man mit Textdateien lesend und schreiben zugreift' weitergeholfen hat.
Solltet Ihr Fragen haben, so schreibt bitte einen Beitrag im Anfänger-Forum mit einem Verweis auf diesen FAQ-Beitrag.
Danke.

Ich hoffe, dass ich Euch hier etwas weiterhelfen konnte.
Bei Verbesserungsvorschlägen würde ich mich über eine Nachricht freuen.

Geändert von Jann Hendrik (04.04.2008 um 09:54 Uhr).
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.07.2005, 02:02   Nach oben    #2
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.590
Standard Textdateien: Lesen und Schreiben von Inhalten

Interessante Beiträge im Forum

Frage zum Gästebuch Tutorial


Eventuell hilft Euch ja der ein oder andere Beitrag noch weiter

Wenn Ihr Fragen habt, dann stehen wir Euch gerne in den Foren zur Verfügung.

Grüße Ben

Geändert von Jann Hendrik (04.04.2008 um 09:40 Uhr). Grund: link angepasst
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] Mit PHP dynamisch einen RSS-Feed aktualisieren Jann Hendrik Tutorials 0 13.03.2007 09:52
Frage zum Tut: [PHP] Fremde Webseiten auslesen the_cRu PHP-Programmierung 27 10.02.2007 19:59
[PHP] 404-Fehlerseiten als Chance PaterNoster Tutorials 0 23.04.2006 15:04
[PHP] Fremde Webseiten auslesen WarrenFaith Tutorials 3 14.03.2006 15:59
[PHP] Ein einfaches Template-System MrNiceGuy Tutorials 0 09.10.2005 18:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:59 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44