Obsługa błędów podczas operacji na katalogach
Założenie: Nauczymy się obsługiwać błędy, które mogą wystąpić podczas tworzenia, usuwania lub sprawdzania istnienia katalogów w PHP.
Krok po kroku:
- Sprawdzanie istnienia katalogu: Funkcja
is_dir()
pozwala sprawdzić, czy katalog istnieje.$katalog = '/tmp/moj_katalog'; if (is_dir($katalog)) { echo "Katalog '$katalog' istnieje.\n"; } else { echo "Katalog '$katalog' nie istnieje.\n"; }
Ten kod sprawdza, czy katalog o podanej ścieżce istnieje. Jeśli istnieje, wyświetla odpowiedni komunikat, w przeciwnym wypadku również.
- Tworzenie katalogu: Funkcja
mkdir()
tworzy nowy katalog. Możemy dodać drugi argument, aby ustawić uprawnienia.$katalog = '/tmp/nowy_katalog'; if (mkdir($katalog, 0777)) { echo "Katalog '$katalog' został utworzony.\n"; } else { echo "Błąd podczas tworzenia katalogu '$katalog'.\n"; }
Ten kod próbuje utworzyć katalog. Drugi argument `0777` ustawia pełne uprawnienia (można je dostosować). W przypadku błędu wyświetlany jest komunikat.
- Usuwanie katalogu: Funkcja
rmdir()
usuwa pusty katalog.unlink()
usuwa plik.$katalog = '/tmp/nowy_katalog'; if (rmdir($katalog)) { echo "Katalog '$katalog' został usunięty.\n"; } else { echo "Błąd podczas usuwania katalogu '$katalog'.\n"; }
Ten kod próbuje usunąć katalog. Ważne jest, aby katalog był pusty przed próbą usunięcia. W przeciwnym razie funkcja zwróci błąd.
- Obsługa błędów za pomocą `@` operatora: Możemy użyć operatora `@` aby stłumić komunikaty o błędach.
$katalog = '/tmp/nieistniejacy_katalog/podkatalog'; @mkdir($katalog, 0777, true); // true tworzy katalogi pośrednie if (is_dir($katalog)) { echo "Katalog '$katalog' został utworzony.\n"; }
Operator `@` tłumi komunikat o błędzie, jeśli katalog pośredni nie istnieje. Trzeci argument `true` w `mkdir()` pozwala na tworzenie katalogów pośrednich.
Ten przykład pokazuje podstawowe operacje na katalogach w PHP oraz jak radzić sobie z potencjalnymi błędami. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi funkcjami związanymi z obsługą plików i katalogów.