Strona główna › Pytania INF.03 › Pytanie 907
INF.03 · pytanie #907
W języku PHP, aby otworzyć już istniejący plik <em>lektury.txt</em> w trybie dodawania treści, tak aby wskaźnik pliku został umieszczony na końcu tego pliku należy zastosować instrukcję
- Afopen("lektury.txt", "x")
- Bfopen("lektury.txt", "r")
- Cfopen("lektury.txt", "w")
- Dfopen("lektury.txt", "a")
Poprawna odpowiedź: D. fopen("lektury.txt", "a")
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Poprawnie – w PHP tryb "a" w funkcji fopen() oznacza otwarcie pliku w trybie dopisywania (append). To dokładnie to, czego wymaga pytanie: plik ma już istnieć, a wskaźnik pliku (file pointer) ma zostać ustawiony na koniec, żeby nowa treść była dopisywana za tym, co już jest. Instrukcja fopen("lektury.txt", "a") otwiera pliki tylko do zapisu, nie nadpisuje istniejącej zawartości, tylko dokleja nowe linie na końcu. Jeśli plik nie istnieje, PHP spróbuje go utworzyć, oczywiście jeśli uprawnienia systemu plików na to pozwalają. W praktyce taki tryb stosuje się np. do prowadzenia logów, dzienników zdarzeń, prostych liczników odwiedzin albo dopisywania nowych rekordów tekstowych bez kasowania starych danych. Typowy fragment kodu może wyglądać tak: $fh = fopen("lektury.txt", "a"); fwrite($fh, "Pan Tadeusz\n"); fclose($fh); Po takim zapisie wcześniejsza zawartość lektury.txt zostaje nietknięta, a tekst „Pan Tadeusz” trafia na sam koniec pliku. Z mojego doświadczenia to jest bezpieczniejsza opcja niż tryb "w", kiedy chcemy tylko coś dopisać i absolutnie nie wolno stracić danych, które już w pliku są. Warto też pamiętać o dobrych praktykach: zawsze sprawdzamy wynik fopen() (czy nie zwrócił false), obsługujemy ewentualne błędy i po zakończeniu pracy domykamy uchwyt funkcją fclose(). W większych projektach sensowne jest też blokowanie pliku (flock) przy jednoczesnym dostępie wielu skryptów, żeby dane się nie pomieszały. Tryb "a" jest więc standardowym i zalecanym rozwiązaniem w sytuacjach, gdy trzeba dopisywać dane na końcu istniejącego pliku tekstowego.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.