Zapisywanie do dużych plików (chunked writing)
Założenie: Nauczymy się zapisywać duże pliki w PHP, unikając problemów z pamięcią RAM poprzez zapisywanie danych w częściach (chunkach).
Krok po kroku:
- Otwarcie pliku do zapisu: Używamy funkcji
fopen()
z flagą'wb'
(write binary) aby otworzyć plik w trybie zapisu binarnego. Jeżeli plik nie istnieje, zostanie utworzony. - Zapisywanie danych w chunkach: Definiujemy rozmiar chunka (np. 1KB) i iterujemy po danych, zapisując je po kawałku za pomocą funkcji
fwrite()
. - Zamknięcie pliku: Po zakończeniu zapisu, zamykamy plik za pomocą funkcji
fclose()
. Jest to bardzo ważne, aby zapisać wszystkie buforowane dane.
$plik = fopen('duzy_plik.txt', 'wb');
if ($plik === false) {
die('Błąd otwarcia pliku!');
}
$rozmiar_chunka = 1024; // 1KB
$dane = str_repeat('A', 1024 * 1024 * 10); // 10MB danych testowych
for ($i = 0; $i < strlen($dane); $i += $rozmiar_chunka) {
$chunk = substr($dane, $i, $rozmiar_chunka);
fwrite($plik, $chunk);
}
fclose($plik);
Powyższy przykład pokazuje podstawy zapisywania dużych plików w PHP w częściach. Pamiętaj o odpowiednim obsługiwaniu błędów i dostosowaniu rozmiaru chunka do swoich potrzeb.