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);