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.