rewind

funkcja

Przesuwa wskaźnik pozycji otwartego uchwytu pliku z powrotem na jego początek. Zwraca true przy sukcesie.

rewind(resource $stream): bool

rewind ustawia wskaźnik strumienia na pozycję 0 — czyli na sam początek pliku. To odpowiednik fseek($stream, 0). Przydaje się, gdy chcesz przetworzyć ten sam plik (lub tymczasowy bufor) więcej niż raz bez jego zamykania i ponownego otwierania.

Funkcja zwraca false, jeśli strumień nie obsługuje przewijania (np. niektóre strumienie sieciowe). Po rewind flaga EOF jest też resetowana, co potwierdza feof zwracające false.

<?php
declare(strict_types=1);

$sciezka = sys_get_temp_dir() . '/dane.txt';
file_put_contents($sciezka, "linia pierwsza\nlinia druga\n");

$uchwyt = fopen($sciezka, 'r');

if ($uchwyt === false) {
    throw new \RuntimeException('Nie można otworzyć pliku.');
}

// Pierwsze przejście
while (($linia = fgets($uchwyt)) !== false) {
    echo 'Pass 1: ' . trim($linia) . PHP_EOL;
}

rewind($uchwyt); // wracamy na początek

// Drugie przejście
while (($linia = fgets($uchwyt)) !== false) {
    echo 'Pass 2: ' . trim($linia) . PHP_EOL;
}

fclose($uchwyt);
unlink($sciezka);