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:

  1. 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.
  2. 
    $plik = fopen('duzy_plik.txt', 'wb');
    if ($plik === false) {
        die('Błąd otwarcia pliku!');
    }
    				
  3. Zapisywanie danych w chunkach: Definiujemy rozmiar chunka (np. 1KB) i iterujemy po danych, zapisując je po kawałku za pomocą funkcji fwrite().
  4. 
    $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);
    }
    				
  5. Zamknięcie pliku: Po zakończeniu zapisu, zamykamy plik za pomocą funkcji fclose(). Jest to bardzo ważne, aby zapisać wszystkie buforowane dane.
  6. 
    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.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *