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
 

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
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
 
 
 

Zeile des Dateizeiger einlesen

Sie befinden sich: Home > Php Tutorial > Zeile des Dateizeiger einle...

Zeile des Dateizeiger einlesen


Eintrag am:  26.10.2010
Hits / Besucher:  8460
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Gerade bei der Arbeit mit Text- oder Konfigurationsdateien stoßen Sie häufig darauf, dass es sinnvoll ist, die Datei zeilenweise einzulesen oder zu verarbeiten. Dies ist besonders nützlich, wenn Sie bestimmte Einstellungen aus einer Konfigurationsdatei gezielt extrahieren möchten. Eine elegante Möglichkeit dazu bietet die Funktion fgets(), die Ihnen erlaubt, aus einer geöffneten Datei Zeile für Zeile auszulesen, wobei sie immer von der aktuellen Position des Dateizeigers ansetzt. So behalten Sie die Kontrolle über den Leseprozess und können den Inhalt der Datei strukturiert verarbeiten.

Flussdiagramm zur Verarbeitung einer Datei mit fgets() in PHP. Schritte: Datei öffnen, Zeile mit fgets() lesen, Abfrage ‚Ende der Datei?‘ – bei ‚Nein‘ zurück zu ‚Zeile mit fgets() lesen‘, bei ‚Ja‘ Datei schließen.

Ein spannender Aspekt: Seit PHP-Version 4.2.0 können Sie die maximale Länge der zu lesenden Zeile optional als zweiten Parameter angeben. Wird dieser Wert nicht gesetzt, wählt PHP automatisch eine maximale Zeilenlänge von 1024 Bytes. Dies reicht in den meisten Fällen aus, kann aber bei sehr langen Textzeilen angepasst werden. Falls PHP auf einem Mac Schwierigkeiten hat, Zeilenenden korrekt zu erkennen, hilft in der Regel die Option „auto_detect_line_endings“, die solche Probleme häufig behebt. Ein kleiner Tipp für die Fehlerbehandlung: Sollte beim Lesen einer Zeile ein Fehler auftreten, gibt fgets() „false“ zurück, sodass Sie leicht prüfen können, ob alles wie gewünscht funktioniert hat.

Ein Anwendungsbeispiel:

<?php

error_reporting(E_ALL);
$datei = './datei.txt';
$zeilen = '';
$handle = @fopen ($datei, "r");
if ($handle === false) {
echo 'Die Datei "'.$datei.'" konnte nicht
gelesen werden.';
} else {
while (!feof($handle)) {
$zeilen .= fgets($handle, 4096);
}
echo $zeilen;
fclose ($handle);
}
?>

Beispielhafte Ausgabe:

Hier steht der Text aus Zeile 1 der Datei „datei.txt“.
Hier steht der Text aus Zeile 2 der Datei „datei.txt“.

Erklärung des Ablaufs:

Zu Beginn aktivieren Sie die Anzeige aller Fehlermeldungen. Dies ist besonders in der Entwicklungsphase von Vorteil, da Ihnen dadurch mögliche Probleme schneller auffallen. In der Variable $datei geben Sie den Dateipfad an, den Sie einlesen möchten. Dabei haben Sie die Flexibilität, sowohl relative als auch absolute Pfade zu nutzen, je nach Struktur Ihres Projekts. Die Variable $zeilen wird als leerer String initialisiert und dient später dazu, die eingelesenen Zeilen zu speichern.

Mit fopen() öffnen Sie die Datei im Lesemodus („r“), wodurch der Dateizeiger an den Anfang der Datei gesetzt wird. Anschließend prüfen Sie, ob die Datei erfolgreich geöffnet wurde. Wenn dies fehlschlägt, wird eine Fehlermeldung ausgegeben. Andernfalls beginnt der eigentliche Lesevorgang: Eine while-Schleife liest die Datei Zeile für Zeile, bis das Dateiende (EOF) erreicht ist. Jede eingelesene Zeile wird an den String $zeilen angehängt, sodass am Ende der gesamte Inhalt vorliegt. Abschließend wird die Datei wieder geschlossen, um Systemressourcen freizugeben.

Ein zusätzlicher Hinweis: fgets() ist hervorragend geeignet für einfache Zeilenoperationen. Wenn Sie jedoch eine Funktion benötigen, die HTML-Tags automatisch entfernt, kann fgetss() die bessere Wahl sein. Sie kombiniert das zeilenweise Lesen mit einer Filterung der Tags, was gerade bei unstrukturierten HTML-Inhalten nützlich ist.

 

Tags:

 

Artikel hinzufügen bei:
         
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.