Czytanie z pamięci (memory stream)
Założenie: Nauczymy się, jak odczytywać dane z utworzonego strumienia w pamięci, bez konieczności zapisywania ich do pliku.
Krok po kroku:
- Tworzenie strumienia w pamięci: Używamy funkcji
fopen()
z parametrem “php://memory” do utworzenia strumienia w pamięci. - Zapisywanie danych do strumienia: Używamy funkcji
fwrite()
, aby zapisać dane do utworzonego strumienia. - Ustawienie wskaźnika na początek strumienia: Przed odczytem musimy ustawić wskaźnik na początek strumienia za pomocą
rewind()
. - Odczytywanie danych ze strumienia: Używamy funkcji
fread()
, aby odczytać dane ze strumienia. - Zamykanie strumienia: Po zakończeniu pracy ze strumieniem, należy go zamknąć za pomocą
fclose()
.
$stream = fopen('php://memory', 'w+');
Funkcja fopen()
otwiera strumień w trybie zapisu i odczytu (‘w+’).
$dane = "To są przykładowe dane.";
fwrite($stream, $dane);
fwrite()
zapisuje zawartość zmiennej $dane
do strumienia.
rewind($stream);
rewind()
ustawia wskaźnik na początek strumienia, umożliwiając ponowne odczytanie danych.
$odczytaneDane = fread($stream, strlen($dane));
echo $odczytaneDane; // Wyświetli: To są przykładowe dane.
fread()
odczytuje ilość bajtów określoną drugim argumentem (w tym przypadku długość zapisywanych danych).
fclose($stream);
fclose()
zwalnia zasoby zajmowane przez strumień.
Ten przykład pokazuje podstawowe operacje na strumieniach w pamięci w PHP. Zachęcamy do eksperymentowania z różnymi funkcjami związanymi z obsługą strumieni, aby lepiej zrozumieć ich możliwości.