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ć

Sprawdź, jak zostać testerem oprogramowania lub Java developerem! Poznaj kursy online!

Architektura globalnego e-commerce: Jak zbudować sklep gotowy na podbój świata?

Java obchodzi 30. urodziny – język programowania który zmienił świat technologii

Jak zacząć projektować aplikację, nie mając gotowego pomysłu?

Serwer dla małej firmy – czym kierować się przy jego wyborze?

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 e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze artykuły

Procesor AMD Ryzen 7
Najlepsze procesory z pamięcią 3D V-Cache: Wydajność dla graczy i profesjonalistów
Technologie
Jak przygotować sklep internetowy na automatyzację obsługi klienta?
Artykuły partnerskie
the nvidia logo is displayed on a table
Nvidia przyłapana? Gigant AI chciał kupić miliony pirackich książek
AI Aktualności
Najczęstsze błędy w SMS marketingu: jak nie przepalić budżetu?
E-marketing
4 najczęstsze cyberzagrożenia w przemyśle
Technologie
Jak uratować zaschnięty tusz do drukarki? Skuteczne domowe sposoby i porady
Poradniki
Model 3D jako wspólne źródło danych dla projektu, produkcji i montażu
Artykuły partnerskie
Dlaczego wideo z telefonu sprzedaje na TikToku lepiej niż profesjonalne spoty?
Artykuły partnerskie
Dwa ekrany zawsze pod ręką – zalety korzystania z monitora przenośnego na co dzień
Technologie
Rola nowoczesnych technologii w procesie rehabilitacji
Artykuły partnerskie
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

Sprawdź, jak zostać testerem oprogramowania lub Java developerem! Poznaj kursy online!

5 min czytania
Technologie webowe

Architektura globalnego e-commerce: Jak zbudować sklep gotowy na podbój świata?

7 min czytania
MacBook Pro showing programming language
Technologie webowe

Java obchodzi 30. urodziny – język programowania który zmienił świat technologii

9 min czytania
AktualnościTechnologie webowe

Jak zacząć projektować aplikację, nie mając gotowego pomysłu?

9 min czytania
woman in black top using Surface laptop
Technologie webowe

Serwer dla małej firmy – czym kierować się przy jego wyborze?

5 min czytania
Technologie webowe

Jaki hosting wybrać pod Laravel? Kompleksowy przewodnik dla twórców aplikacji webowych

6 min czytania
programming language
Technologie webowe

Kaskadowość w CSS – wszystko, co musisz wiedzieć

7 min czytania
two women talking while looking at laptop computer
Technologie webowe

Darmowe kreatory stron WWW – stwórz swoją stronę w godzinę

14 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

  • Najlepsze procesory z pamięcią 3D V-Cache: Wydajność dla graczy i profesjonalistów
  • Jak przygotować sklep internetowy na automatyzację obsługi klienta?
  • Nvidia przyłapana? Gigant AI chciał kupić miliony pirackich książek
  • Najczęstsze błędy w SMS marketingu: jak nie przepalić budżetu?

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?