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.txtlub pełna ścieżkaC:/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ówfgets($uchwyt)– odczytuje jedną linię tekstufgetc($uchwyt)– odczytuje pojedynczy znak
Przykład:
Zapis do pliku
fwrite($uchwyt, $tekst)– zapisuje dane do plikufputs($uchwyt, $tekst)– alias funkcjifwrite()
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 istniejefilesize($plik)– zwraca rozmiar pliku w bajtachfile($plik)– odczytuje plik do tablicy (każdy wiersz to element tablicy)file_get_contents($plik)– odczytuje cały plik jako łańcuch znakówfile_put_contents($plik, $dane)– zapisuje dane do pliku (tworzy/usuwa zawartość)
3. Operacje na plikach i katalogach
unlink($plik)– usuwa plikrename($stara, $nowa)– zmienia nazwę pliku lub przenosi gocopy($źródło, $cel)– kopiuje plik
Praca z katalogami:
mkdir($nazwa)– tworzy katalogrmdir($nazwa)– usuwa pusty katalogopendir($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: