PHP Academy · Lektion

Dateien mit PHP auslesen

Lesen Sie Dateiinhalte mit file_get_contents und fopen/fread aus.

Lektion 1 von 413 Schritte

Dateien mit PHP auslesen ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

PHP und das Dateisystem

PHP kann Dateien auf dem Dateisystem des Servers lesen, schreiben und verwalten. Wichtige Funktionen zum Lesen sind:

  • file_get_contents() – gesamte Datei als Zeichenfolge lesen
  • fopen() + fread() – streambasiertes Lesen
  • file() – Datei als Array von Zeilen lesen

file_get_contents()

Die einfachste Möglichkeit, den gesamten Inhalt einer Datei als Zeichenfolge einzulesen:

<?php
$content = file_get_contents('/var/www/html/data.txt');

if ($content === false) {
    echo 'Could not read file';
} else {
    echo $content;
    echo strlen($content) . ' bytes';
}

Prüfen, ob eine Datei existiert

Prüfen Sie dies immer vor dem Lesen, um Fehler zu vermeiden:

<?php
$path = '/var/data/config.json';

if (!file_exists($path)) {
    die('Config file not found');
}

if (!is_readable($path)) {
    die('No permission to read file');
}

$json = file_get_contents($path);
$config = json_decode($json, true);

file() – In ein Array lesen

file() liest eine Datei und gibt jede Zeile als Array-Element zurück:

<?php
$lines = file('data.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach ($lines as $lineNum => $line) {
    echo ($lineNum + 1) . ': ' . $line . PHP_EOL;
}

fopen, fread, fclose

Streambasiertes Lesen auf niedriger Ebene für große Dateien – verarbeiten Sie die Datei, ohne sie vollständig in den Arbeitsspeicher zu laden:

<?php
$handle = fopen('large_file.txt', 'r');

if ($handle === false) die('Cannot open file');

// Read 1KB at a time
while (!feof($handle)) {
    $chunk = fread($handle, 1024);
    echo $chunk;
}

fclose($handle);

fgets für das zeilenweise Lesen

fgets() liest jeweils eine Zeile – das spart bei großen Dateien Arbeitsspeicher:

<?php
$handle = fopen('server.log', 'r');

while (($line = fgets($handle)) !== false) {
    if (str_contains($line, 'ERROR')) {
        echo 'Found error: ' . $line;
    }
}

fclose($handle);

Lesen entfernter Dateien

file_get_contents() kann auch HTTP-URLs lesen, wenn allow_url_fopen aktiviert ist:

<?php
$json = file_get_contents('https://api.example.com/data.json');

// Prefer cURL for more control and error handling
$ch = curl_init('https://api.example.com/data.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status   = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

SplFileObject

SplFileObject stellt eine objektorientierte Schnittstelle für Dateioperationen bereit:

<?php
$file = new SplFileObject('data.txt', 'r');

foreach ($file as $lineNum => $line) {
    echo $lineNum . ': ' . $line;
}

// Read specific line:
$file->seek(5);
echo $file->current(); // line 6 (0-indexed)

JSON-Dateien lesen

Ein häufig verwendetes Muster: eine JSON-Konfigurationsdatei lesen und dekodieren:

<?php
function loadJsonConfig(string $path): array {
    if (!file_exists($path)) {
        throw new RuntimeException("Config not found: $path");
    }
    $json = file_get_contents($path);
    $data = json_decode($json, true);
    if (json_last_error() !== JSON_ERROR_NONE) {
        throw new RuntimeException('Invalid JSON: ' . json_last_error_msg());
    }
    return $data;
}

$cfg = loadJsonConfig('/app/config.json');

Dateiinformationen

Metadaten zu einer Datei abrufen, ohne ihren Inhalt zu lesen:

<?php
$path = '/var/www/html/image.jpg';

echo filesize($path);           // bytes
echo filetype($path);           // 'file'
echo filemtime($path);          // last modified timestamp
echo date('Y-m-d', filemtime($path));

$info = pathinfo($path);
echo $info['dirname'];    // /var/www/html
echo $info['basename'];   // image.jpg
echo $info['extension'];  // jpg

Dateien sperren

Verwenden Sie eine Dateisperre, um Konflikte durch gleichzeitige Schreibzugriffe zu verhindern:

<?php
$handle = fopen('counter.txt', 'r+');

if (flock($handle, LOCK_EX)) {  // exclusive lock
    $count = (int) fread($handle, 20);
    $count++;
    fseek($handle, 0);
    fwrite($handle, $count);
    fflush($handle);
    flock($handle, LOCK_UN);    // release
}

fclose($handle);

Schnelltest

Welche PHP-Funktion liest eine gesamte Datei mit einem einzigen Aufruf als Zeichenfolge ein?

Zusammenfassung: Dateien lesen

Grundlagen zum Lesen von Dateien:

  • file_get_contents() – gesamte Datei als Zeichenfolge
  • file() – Datei als Array von Zeilen
  • fopen/fread/fclose – Stream für große Dateien
  • fgets() – zeilenweises Lesen aus einem Stream
  • Prüfen Sie immer zuerst file_exists und is_readable
  • Verwenden Sie flock für sicheren gleichzeitigen Zugriff
Kostenlos starten

Lerne PHP mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
49
Lektionen
195

Häufig gestellte Fragen

Ist die Lektion „Dateien mit PHP auslesen“ kostenlos?

Ja — der vollständige Text von „Dateien mit PHP auslesen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Dateien mit PHP auslesen“?

Lesen Sie Dateiinhalte mit file_get_contents und fopen/fread aus. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um PHP Academy zu starten?

Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Dateien mit PHP auslesen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?

Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Dateien mit PHP auslesen
  2. In Dateien schreiben und Daten anhängen
  3. Mit Verzeichnissen arbeiten
  4. Datei-Uploads verarbeiten
← Zurück zu PHP Academy