PHP 4.3

10.6.1 fseek() mit optionalem Parameter

Um Ihnen die Arbeitsweise des optionalen Parameters zu verdeutlichen, finden Sie nachfolgend ein Skriptbeispiel sowie drei Illustrationen, die den Vorgang genauer visuell nachvollziehbar machen. Im Skript verwenden wir erstmal die Funktion fgetc() mit der Sie ein einzelnes Zeichen an der aktuellen Position des Zeigers auslesen können. Mit dem Auslesen wandert der Zeiger automatisch ein Zeichen weiter.

Beispiele mit fseek()

<?php

  $fp = @  fopen("test.txt", "r+");
  if ($fp == true) {
     fseek($fp, 5, SEEK_SET);
     $char = fgetc($fp);
     echo $char . "<br>";

     fseek($fp, 7, SEEK_CUR);
     $char = fgetc($fp);
     echo $char . "<br>";

     fseek($fp, -26, SEEK_END);
     $char = fgetc($fp);
     echo $char ."<br>";

     fclose($fp);
   }   else {
      echo "Datei konnte nicht geöffnet werden.";
   }

?>

Im ersten Schritt positionieren wir den Zeiger mit dem Parameter SEEK_SET:

Anschließend bewegen wir den Zeiger unter Angabe des Parameters SEEK_CUR:

Abschließend der Aufruf von fseek() mit dem Parameter SEEK_END:

Da auf Windows-Betriebssystemen zwei Byte für ein Zeilenende gesetzt werden, bei UNIX-Varianten jedoch nur eines, unterscheiden sich die Ergebnisse der Anwendung von fseek() teilweise.

Browserausgabe für Dateien im UNIX-Format
  a
  F
  T



Browserausgabe für Dateien im Windows-Format
  a
     
  s

In Windows belegt ein Zeilenende zwei Positionen statt nur einer in UNIX. Deswegen landen wir im zweiten fseek() auf dem Leerzeichen vor dem F und im dritten fseek() auf dem s, zwei Zeichen hinter dem T.

Kommentare (0)

Ihr Kommentar

Name