Korzystając z tej strony zgadzasz się z polityką prywatności i regulaminem.
Akceptuj
WebInside.plWebInside.plWebInside.pl
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
Szukaj
  • Kontakt
  • Forum
WebInside.pl © 2023.
Czytasz: Katalogi w PHP
Udostępnij
Zaloguj się
Powiadomienia
Aa
WebInside.plWebInside.pl
Aa
Szukaj
  • Strona główna
  • Aktualności
  • Technologie webowe
  • Publicystyka
  • E-marketing
  • Poradniki
  • AI
  • Technologie
  • Artykuły partnerskie
  • Więcej
    • Kontakt
    • Mapa strony
Masz już konto? Zaloguj się
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
WebInside.pl © 2023.
WebInside.pl > Technologie webowe > Katalogi w PHP
Technologie webowe

Katalogi w PHP

WebInside.pl
Ostatnia aktualizacja: 24.07.2003
WebInside.pl
Udostępnij
Udostępnij

Katalogi… niby to proste, a wiele osób ma z tym problemu. W tym krótkim artykule przedstawiam wszystko co jest potrzebne do efektywnej pracy z katalogami.

Zawartość
Na samym początku, kilka ważnych szczegółów:Tworzenie i usuwanie katalogów:Praca z katalogiem:Odczytywanie katalogu:Wskaźnik wewnętrzny katalogu:Inne operacje na katalogach:

Ostatnio spotykałem się z wieloma problemami dotyczącymi obsługi katalogów w PHP. Nie bez przyczyny, jest to dość delikatny temat, ale oczywiście nie trudny … trzeba tylko załapać. Nie będę tutaj mówił o uprawnieniach, od tego jest oddzielny artykuł, także dobrze go sobie najpierw przestudiować.

Na samym początku, kilka ważnych szczegółów:

– nie istnieje w tym wypadku pojęcie typu FOLDER, nauczcie się mówić KATALOG
– katalog, jest „wyjątkowym” rodzajem pliku, który grupuje pliki, i w pewnym zakresie jest traktowany jak one
– na unix’owych serwerach ścieżki dostępu podaje się stosując „/” a nie jak w windowsie „\”
– bardzo ważna jest umiejętność posługiwania się uprawnieniami w unixie

Tworzenie i usuwanie katalogów:

Te czynności są akurat bardzo proste, należy tylko pamiętać, że skrypt domyślnie ma uprawnienia równe z administratorem (twórcą skryptu). Jest to dość wygodne, ale na te uprawnienia mają wpływ użytkownicy skryptu. Katalogi tworzymy poprzez polecenie mkdir(), podając kolejno jako parametry nazwę katalogu (może to być ścieżka dostępu), oraz uprawnienia z jakimi ma być utworzony. z usuwaniem katalogu jest już większy problem, otóż nie można usunąć nie pustego katalogu, tzn. zawierającego w sobie pliki. Trzeba je najpierw usunąć. Do usuwania katalogu używamy polecenia rmdir(), a jako parametr podajemy nazwę katalogu (lub ścieżkę dostępu). Oto przykładowa funkcja usuwająca drzewo katalogów:

<?php
function deltree( $dirPath ) {
$dirDP = opendir( $dirPath );
while( $element = readdir( $dirDP ) ) {
if ($element!=’.’ and $element!=’..’) {
if ( is_file( $dirPath . „/” . $element ) ) {
unlink( $dirPath . „/” . $element );
} else {
$this -> deltree( $dirPath . „/” . $element );
}
}
}
closedir($dirDP);
rmdir( $dirPath );
}
?>

Działa ona na zasadzie rekurencji i można jej używać, ale uwaga na uprawnienia!

Praca z katalogiem:

W tym wypadku rzeczy się maja podobnie do plików. Aby korzystać z katalogu, trzeba utworzyć strumień dostępu. Katalogi posiadają swoje wewnętrzne wskaźniki, wskazujące pozycję. Strumień katalogu tworzymy przy pomocy polecenia opendir(), jako parametr podając nazwę (lub ścieżkę dostępu) katalogu. Analogicznie strumień zamykamy używając closedir(), a jako parametr podajemy uchwyt do katalogu.

Odczytywanie katalogu:

Naturalnie odczytywanymi pozycjami z katalogu są pliki. Ale UWAGA nie tylko, są w każdym katalogu dwie pozycje, które nie są plikami, są to: „.” oraz „..”. Pozycja „.” oznacza bieżący katalog, a „..” katalog nadrzędny. Podobnie jak np. w Norton Commanderze. Odczytanie kolejnego elementu z katalogu odbywa się poprzez polecenie: readdir() podając jako parametr uchwyt do katalogu. Z bieżącego katalogu zostaje zwrócona kolejna pozycja, a wskaźnik zostaje przesunięty do kolejnej. Jeżeli odczytujemy dane z katalogu, możemy użyć do tego pętli, trzeba jednak pamiętać o „.” i „..”, które trzeba pominąć w warunku, przykładowy skrypt może wyglądać tak:

<?php
$dirPath = „./news/newsy”;
$dirDP=opendir( $dirPath );
while( $element = readdir( $dirDP ) ) {
if ( $element != ’.’ and $element != ’..’ ) {
$elementy[] = $element;
}
}
closedir( $dir_news );
?>

W ten oto sposób możemy odczytać wszystkie elementy z podanego katalogu, łącznie z katalogami. Jeżeli chcielibyśmy nie odczytywać katalogów, trzeba by użyć w warunku wyrażenia isdir(), i jako argument podać ścieżkę dostępu (UWAGA ścieżkę dostępu, a nie nazwę), można by do tego użyć zmiennej $dirPath, łącząc jej zawartość z wartością $element, wówczas wyglądałoby to tak:

<?php
$dirPath = „./news/newsy”;
$dirDP=opendir( $dirPath );
while( $element = readdir( $dirDP ) ) {
if ( $element != ’.’ and $element != ’..’ and !isdir( $dirPath . $element ) ) {
$elementy[] = $element;
}
}
closedir( $dir_news );
?>

W powyższym skrypcie w wyniku nie będzie katalogów, jeżeli pominiemy negacje funkcji isdir() wówczas w wyniku będą tylko katalogi…

Wskaźnik wewnętrzny katalogu:

Jeśli chodzi o wewnętrzny wskaźnik katalogu, to dużego pola do popisu nie ma, można tylko przewinąć go do początku, używając funkcji rewinddir(), i jako parametr podając uchwyt do katalogu. Funkcja nie zwraca żadnych wartości.

Inne operacje na katalogach:

Jak wspomniałem na początku, katalogi mają dużo wspólnego z plikami, przez co niektórych funkcji używa się taki sam sposób, np.: copy() lub fstat(), te funkcję są opisane w artykule o plikach, zapraszam do lektury.

Może Cię zainteresować

Jak wybrać agencję do tworzenia strony internetowej w Warszawie?

Lovable – recenzja po 3 miesiącach. Cennik, opinie, kredyty, limity

Stanowisko web developera w 2026: co naprawdę przyspiesza pracę — i za co nie warto przepłacać

AI kontra klasyczne kreatory stron: kto tu naprawdę wygrywa?

Jak wybrać i zarejestrować domenę? Praktyczny przewodnik dla firm i osób prywatnych

WebInside.pl 2003-07-24 2003-07-24
Udostępnij ten artykuł
Facebook Twitter Kopiuj link Wydrukuj
Udostępnij
Poprzedni artykuł Programowanie obiektowe w PHP
Następny artykuł Ilu internautów odwiedza moją witrynę?
Zostaw komentarz lub opinię

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze artykuły

Handlowiec na etat czy zewnętrzny zespół? Porównanie kosztów w 2026 roku
Artykuły partnerskie
Aplikacja Bybit – opinie o aplikacji mobilnej Bybit.eu na Androida i iOS
Artykuły partnerskie
Jak zwiększyć rozpoznawalność marki w całym mieście dzięki reklamie na tramwajach
E-marketing
person holding black iphone 4
Newsletter w małym sklepie internetowym. Jak zacząć, żeby pierwszy mail nie wylądował w spamie
E-marketing
Jak wybrać agencję do tworzenia strony internetowej w Warszawie?
Technologie webowe
person sitting while using laptop computer and green stethoscope near
Badania profilaktyczne w Warszawie – jaki pakiet zrobić raz w roku i gdzie się umówić
Artykuły partnerskie
Dlaczego skuteczność reklamy zależy również od tego, co dzieje się na stronie?
E-marketing
Lovable – recenzja po 3 miesiącach. Cennik, opinie, kredyty, limity
Technologie webowe
A smartwatch with a dark textured band and a colorful app icon display
Smartwatch jak mały komputer – dlaczego naprawa Apple Watch wymaga dziś specjalistycznej technologii?
Poradniki
Stanowisko web developera w 2026: co naprawdę przyspiesza pracę — i za co nie warto przepłacać
Technologie webowe
banner
Chcesz umieścić swoją reklamę w portalu WebInside.pl?
Skontaktuj się z nami, a zaproponujemy interesujące formy reklamy.
Skontaktuj się

Inne polecane artykuły

Technologie webowe

Jak wybrać agencję do tworzenia strony internetowej w Warszawie?

3 min czytania

Lovable – recenzja po 3 miesiącach. Cennik, opinie, kredyty, limity

15 min czytania
Technologie webowe

Stanowisko web developera w 2026: co naprawdę przyspiesza pracę — i za co nie warto przepłacać

7 min czytania
a computer screen with the words the easy way to build marketplaces
Technologie webowe

AI kontra klasyczne kreatory stron: kto tu naprawdę wygrywa?

5 min czytania
Technologie webowe

Jak wybrać i zarejestrować domenę? Praktyczny przewodnik dla firm i osób prywatnych

5 min czytania
Technologie webowe

Komentarze w CSS – jak dodawać i do czego służą? Przykłady użycia

17 min czytania
Technologie webowe

Co to jest REST API i na jakich zasadach działa? Przewodnik dla początkujących

21 min czytania
Technologie webowe

Marginesy i dopełnienie w CSS – czym się różnią właściwości margin i padding?

17 min czytania
//

WebInside.pl – portal technologiczny. Aktualności ze świata technologii, webmastering, marketing internetowy, AI, poradniki.

 

Partnerzy



Wszystkie kategorie

  • AI
  • Aktualności
  • Artykuły partnerskie
  • E-marketing
  • e(Biznes)
  • Poradniki
  • Publicystyka
  • Technologie
  • Technologie webowe

Ostatnio dodane

  • Handlowiec na etat czy zewnętrzny zespół? Porównanie kosztów w 2026 roku
  • Aplikacja Bybit – opinie o aplikacji mobilnej Bybit.eu na Androida i iOS
  • Jak zwiększyć rozpoznawalność marki w całym mieście dzięki reklamie na tramwajach
  • Newsletter w małym sklepie internetowym. Jak zacząć, żeby pierwszy mail nie wylądował w spamie

Kontakt

Chcesz się z nami skontaktować? Jesteś zainteresowany reklamą lub artykułem sponsorowanym?

Skorzystaj z formularza kontaktowego lub napisz do nas na kontakt@webinside.pl

WebInside.plWebInside.pl
WebInside.pl © 2023 | Mapa strony | Forum | Polityka prywatności
Witaj ponownie!

Zaloguj się do swojego konta

Zapomniałeś hasła?