Dateioperationen - Lesen und Schreiben

Um auf eine Datei zugreifen zu können (egal ob sie gelegen oder erstellt werden soll), muss zunächst ein Zeiger (Filepointer) gesetzt werden:
// Datei oeffnen
if($fp = fopen("datei.txt", "r")) {
  while(!feof($fp)) {
    $zeile = fgets($fp, 8192);
    ...$zeile verarbeiten
  }
} else {
  echo "Konnte Datei nicht öffnen";
}
Der zweite Parameter in fopen() gibt den Modus an, in welchem die datei behandelt werden soll:

öffnet die Datei nur zum Lesen und positioniert den Dateizeiger auf den Anfang der Datei
r+ Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.
Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.
w+ Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
a+ Öffnet die Datei zum Lesen und Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.

Um die Datei explizit als Binär-Datei zu behandeln, muss (unter Windows) der Buchstabe "b" im Modus hinzugefügt werden.

fgets($fp, $max) liest maximal $max Zeichen oder bricht früher ab, wenn es vorher auf einen Zeilenumbruch oder das Dateiende stößt. Letzteres kann per feof($fp) abgefragt werden und eigent sich hervorragend als Abbruchkriterium einer while-Schleife. Das gegenstück zu fgets() ist fputs()

Eine Besonderheit bietet fopen(): wenn statt einer lokalen Datei eine URL übergeben wird, wird von dieser gelesen. Damit können beispielsweise Newsinhalte von fremden Sites ausgewertet werden.