Obsługa plików w PHP

PHP posiada wbudowane funkcje umożliwiające pracę z plikami – od ich otwierania, odczytu, zapisu, aż po usuwanie czy zmianę nazw. Dzięki temu możliwe jest tworzenie aplikacji, które zapisują dane użytkownika, logi, czytają konfiguracje czy generują raporty.


1. Podstawowe operacje na plikach

Otwieranie pliku

Do otwierania plików używa się funkcji:

  • ścieżka – lokalizacja pliku (np. dane.txt lub pełna ścieżka C:/folder/dane.txt)
  • tryb – określa sposób pracy z plikiem:

  • "r" – tylko odczyt (plik musi istnieć)

  • "r+" – odczyt i zapis (plik musi istnieć)
  • "w" – tylko zapis (jeśli plik istnieje → nadpisanie, jeśli nie → utworzenie)
  • "w+" – odczyt i zapis (tworzy nowy plik lub nadpisuje istniejący)
  • "a" – zapis na końcu pliku (append), tworzy plik, jeśli nie istnieje
  • "a+" – odczyt i dopisywanie na końcu pliku

Przykład:


Odczyt z pliku

  • fread($uchwyt, $rozmiar) – odczytuje określoną liczbę bajtów
  • fgets($uchwyt) – odczytuje jedną linię tekstu
  • fgetc($uchwyt) – odczytuje pojedynczy znak

Przykład:


Zapis do pliku

  • fwrite($uchwyt, $tekst) – zapisuje dane do pliku
  • fputs($uchwyt, $tekst) – alias funkcji fwrite()

Przykład:


Zamknięcie pliku

Po zakończeniu operacji należy zamknąć plik:


2. Funkcje pomocnicze do obsługi plików

  • file_exists($plik) – sprawdza, czy plik istnieje
  • filesize($plik) – zwraca rozmiar pliku w bajtach
  • file($plik) – odczytuje plik do tablicy (każdy wiersz to element tablicy)
  • file_get_contents($plik) – odczytuje cały plik jako łańcuch znaków
  • file_put_contents($plik, $dane) – zapisuje dane do pliku (tworzy/usuwa zawartość)

3. Operacje na plikach i katalogach

  • unlink($plik) – usuwa plik
  • rename($stara, $nowa) – zmienia nazwę pliku lub przenosi go
  • copy($źródło, $cel) – kopiuje plik

Praca z katalogami:

  • mkdir($nazwa) – tworzy katalog
  • rmdir($nazwa) – usuwa pusty katalog
  • opendir($nazwa) / readdir($uchwyt) – otwieranie i czytanie katalogu

4. Blokowanie plików

Aby uniknąć konfliktów przy jednoczesnym dostępie wielu procesów, stosuje się blokady:


5. Obsługa błędów

Najczęstsze problemy:

  • próba otwarcia nieistniejącego pliku w trybie odczytu → błąd
  • brak uprawnień do odczytu/zapisu
  • operacje na niezamkniętym uchwycie

Dobrą praktyką jest sprawdzanie, czy operacja się udała: