KWALIFIKACJA INF3 - CZERWIEC 2019

PYTANIE NR 34.
W języku PHP zapisywanie danych do pliku realizuje funkcja
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Funkcja fputs() służy do zapisywania danych do pliku (dokładniej: do otwartego strumienia wskazywanego uchwytem pliku).
fgets() realizuje odczyt linii, fopen() otwiera plik i zwraca uchwyt, a readfile() (lub podobne) służy do odczytu zawartości, nie do zapisu.

Pełne wyjaśnienie:

W PHP zapis danych do pliku wykonuje się za pomocą funkcji, które wysyłają bajty/tekst do strumienia plikowego. Odpowiedź "fputs()" jest poprawna, ponieważ ta funkcja zapisuje łańcuch znaków do pliku wskazanego przez uchwyt (np. uchwyt otrzymany wcześniej z fopen()). W praktyce typowy schemat wygląda tak: otwarcie pliku do zapisu, zapis danych, a następnie zamknięcie pliku.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "fgets()" służy do odczytu danych (najczęściej jednej linii) z otwartego pliku. To funkcja wejścia, nie wyjścia.
  • "fopen()" odpowiada za otwarcie pliku w określonym trybie (np. do odczytu lub zapisu) i zwraca uchwyt/strumień. Samo otwarcie nie zapisuje jeszcze żadnych danych.
  • "freadfile()" nie jest standardową funkcją PHP; często myli się ją z readfile(). Funkcje tego typu dotyczą odczytu (wczytania i wypisania) zawartości pliku, a nie zapisywania nowych danych do niego.

Wskazówka egzaminacyjna: gdy widzisz zestaw funkcji z prefiksem f*, zastanów się, czy dana funkcja jest z grupy: open (otwarcie), read (odczyt), czy write (zapis). To zwykle wystarcza, by uniknąć pomyłek typu fopen vs fputs oraz fgets vs fputs.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
fputs() zapisuje ciąg znaków do otwartego strumienia pliku (uchwytu). W praktyce używa się jej po wcześniejszym otwarciu pliku funkcją fopen() w trybie zapisu, a następnie warto zamknąć plik przez fclose().
fputs() jest aliasem fwrite(), czyli działa jak zapis do pliku przez uchwyt. Na egzaminach spotyka się oba zapisy, dlatego warto pamiętać, że oba dotyczą tej samej operacji: wysłania danych do strumienia plikowego.
fopen() tylko otwiera plik w danym trybie (np. do odczytu lub zapisu) i zwraca uchwyt. Dopiero funkcje zapisu (np. fputs()/fwrite()) rzeczywiście umieszczają dane w pliku, wykorzystując zwrócony uchwyt.
fgets() służy do odczytu danych z pliku, zwykle pobiera jedną linię tekstu z otwartego strumienia. Używa się jej np. do czytania plików konfiguracyjnych, logów lub danych w formacie tekstowym linia po linii.
Najpierw otwierasz plik funkcją fopen() w trybie zapisu (np. "w" lub "a"), aby dostać uchwyt. Następnie zapisujesz dane przez fputs()/fwrite(), a na końcu zamykasz plik przez fclose(), żeby zwolnić zasoby.
Tryb "w" zwykle tworzy plik od nowa lub czyści istniejący i zapisuje od początku, a tryb "a" dopisuje dane na końcu pliku. Na egzaminie kluczowe jest skojarzenie: "w" = nadpisanie, "a" = dopisywanie.
readfile() służy do odczytu: wczytuje zawartość pliku i wysyła ją na wyjście (np. do przeglądarki). To nie jest funkcja do zapisywania danych w pliku, więc nie zastąpi fputs()/fwrite() w operacjach zapisu.
Częste błędy to: mylenie funkcji odczytu z zapisem (fgets vs fputs), brak sprawdzenia czy fopen() zwróciło poprawny uchwyt, oraz pomijanie fclose(). W praktyce może to skutkować brakiem zapisu lub problemami z zasobami.
Warto sprawdzić wynik fopen() (czy nie zwrócił false), a następnie wartość zwracaną przez fputs()/fwrite() (liczbę zapisanych bajtów lub false). Dzięki temu można wykryć brak uprawnień, złą ścieżkę lub problemy z systemem plików.
Przećwicz podstawowy schemat: fopen() → zapis/odczyt (fputs/fwrite lub fgets) → fclose(). Ucz się rozpoznawać po nazwie funkcji, czy dotyczy otwarcia, odczytu czy zapisu. Krótkie zadania praktyczne utrwalą różnice.
info

Statystycznie 74% uczniów zna prawidłową odpowiedź. średnio łatwe

Eksperci podkreślają: "Funkcja fputs() służy do zapisywania danych do pliku (dokładniej: do otwartego strumienia wskazywanego uchwytem pliku)."

Źródła:

  • PHP Manual: fputs — Alias of fwrite, https://www.php.net/manual/en/function.fputs.php (dostęp: 2026-03-01)
  • PHP Manual: fwrite — Binary-safe file write, https://www.php.net/manual/en/function.fwrite.php (dostęp: 2026-03-01)
  • PHP Manual: fgets — Gets line from file pointer, https://www.php.net/manual/en/function.fgets.php (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja PHP: sekcja Filesystem Functions (php.net)
  • Przykłady pracy ze strumieniami (fopen/fwrite/fclose) w kursach PHP
  • Ćwiczenia praktyczne: zapis i odczyt pliku tekstowego w PHP

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego