ftell

ftell($stream)

Zwraca pozycję wskaźnika w otwartym pliku, czyli liczbę bajtów od początku. Przy błędzie zwraca false.

Parametry

  • $stream – otwarty plik z fopen().

Przykłady

$file = sys_get_temp_dir() . "/garth-przyklad.txt";
file_put_contents($file, "Banan\nŻółw\nKiwi\n");
$f = fopen($file, "r");
echo ftell($f); // 0
fgets($f);
echo ftell($f); // 6
// pozycja jest w bajtach: "Żółw\n" ma 8 bajtów
fgets($f);
echo ftell($f); // 14
// zapamiętaj miejsce i wróć do niego później
$position = ftell($f);
fgets($f);
fseek($f, $position);
echo fgets($f); // Kiwi\n
fclose($f);
// w trybie "a" pozycja zaczyna się od 0, choć plik zawiera dane
$f = fopen($file, "a");
echo ftell($f); // 0
fclose($f);
unlink($file);

Na co uważać

  • Pozycja jest w bajtach, nie w znakach.
  • W trybie "a" (dopisywanie) zaczyna od 0 i liczy tylko nowo zapisane bajty, choć zapisy trafiają na koniec pliku.
  • Przy błędzie zwraca false. Pozycja 0 to poprawna wartość, dlatego wynik sprawdzaj przez === false.

Powiązane funkcje:
fseek()
rewind()
fopen()
fgets()