Rozdział 7. ♦ System plików 203
Jeszcze prostsze jest użycie funkcji readfile lub, dostępnej od PHP 4.3.0, file_get_ contents. Pierwsza z nich przyjmuje jako argument ciąg znaków określający nazwę pliku, zwraca natomiast liczbę odczytanych bajtów lub też wartość fal se, jeśli odczyt zakończył się niepowodzeniem. Wynikiem jej działania jest odczytanie zawartości pliku i wysłanie jej do standardowego wyjścia. Aby zatem wysłać zawartość pliku test.txt do przeglądarki, wystarczy wykonać jedną instrukcję: readfileCtest.txt')
Działanie funkcji fi 1 e_get_contents polega również na odczytaniu zwartości pliku, nie jest ona jednak wysyłana do przeglądarki, ale zwracana w postaci ciągu typu string. Odczytanie zwartości pliku test.txt przy użyciu file_get_contents i wysłanie go do przeglądarki będzie zatem wymagało posłużenia się instrukcją: echo f i 1e_gei_contents O test.txt') lub też dwoma instrukcjami w postaci:
$str = file_get_contentsCtest.txt') echo $str:
Zapis danych w pliku jest realizowany za pomocą funkcji fwrite1. Przyjmuje ona trzy argumenty, którymi są: deskryptor pliku, ciąg, który ma zostać zapisany, oraz liczba bajtów, która ma być zapisana. Schematyczne wywołanie funkcji fwrite przyjmuje zatem postać:
fwri te(deskryptor. str[, j 7e])
Parametr i le jest opcjonalny i jeżeli nastąpi jego pominięcie, zostanie zapisany cały ciąg str. W przypadku systemów, które rozróżniają tryb binarny i tekstowy, plik musi zostać otwarty w trybie b. Na listingu 7.15 został zaprezentowany fragment kodu, który zapisuje przykładowy ciąg znaków do pliku o nazwie test.txt.
Listing 7.15. Wykorzystanie funkcji fwrite do zapisania danych w pliku <?php
Istr - "Przykładowa linia tekstu": if<!$fd - fopenCtest.txt", 'wb')) exit("Nie mogę otworzyć pliku test.txt”); fwrite($fd. $str): fclose(tfd):
Spróbujmy teraz wykorzystać te wiadomości do napisania kodu, który będzie zapisywał w pliku tekstowym opinie użytkowników o stronie WWW. Przygotujemy dwa skrypty: jeden będzie wyświetlał kod HTML oraz dotychczasowe wpisy, drugi będzie odpowiedzialny za dodawanie nowych wpisów. Pierwszy skrypt został zaprezentowany na listingu 7.16. Zawiera on zarówno kod HTML, jak i kod PHP, i generuje formularz
Zamiast fwrite możliwe jest również zastosowanie jej aliasu — fputs.