Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] czy da się zrobić - nazwy podfolderów
fredman
post
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

Ostrzeżenie: (0%)
-----


moja wiedza z php to poziom początkujący raczej, stad takie pytanie moze głupie trochę.

chciałem zapytać czy jest taka funkcja (lub jakiś sposób), która pobiera nazwy wszystkich istniejących podfolderów ze wskazanego folderu.
wlasnie zacząłem zabawę z obsługą plikow i udało mi sie zrobić parę rzeczy i brakuje mi jeszcze tego jednego.
mam juz takie coś, że ze wskazanego folderu czyta wszytkie obrazki, które się w nim znajduja i tworzy z nich automatycznie galerię.
z tymi folderami chodzi mi o cos podobnego, czyli że tak samo ze wskazanego folderu czyta nazwy ale tym razem właśne folderów a nie plikow.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
-gox-
post
Post #2





Goście







Podfolderow powiadasz... trzeba zrobic petle, ktora po znalezeniu katalogu is_dir() wlezie do niego, przeczyta wszystko pliki, sciezki dopisze do tablicy a jesli znajdzie kolejny podkatalog znow do niego wlezie i dopisze do tablicy wszystkie grafiki, prosta funkcja 5 linijek (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
antyqjon
post
Post #3





Grupa: Zarejestrowani
Postów: 77
Pomógł: 27
Dołączył: 24.03.2002
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


glob" title="Zobacz w manualu PHP" target="_manual z flagą GLOB_ONLYDIR (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
fredman
post
Post #4





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

Ostrzeżenie: (0%)
-----


znczy chodzi mi tylko o jedno zagłębienie . czyli mam folder, do ktorego podaje sciezke na sztywno i w nim znajduje się nieokreslona liczba folderów, w których znajduja sie juz tylko pliki ale to jest juz nieistotne bo chodzi tylko o same nazwy tych "iluśtam" folderów.
Go to the top of the page
+Quote Post
pyro
post
Post #5





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. function podfoldery($folder)
  3. {
  4. // funkcja pobiera nazwy podfolderow w folderze podanej w parametrze $folder
  5. $dirs_in = array();
  6. $dir = opendir($folder);
  7. while($one = readdir($dir))
  8. {
  9. if(is_dir($folder.'/'.$one))
  10. {
  11. $dirs_in[] = $one;
  12. }
  13. }
  14. if(count($dirs_in) < 1)
  15. {
  16. return false;
  17. }
  18. // funkcja zwraca tablice zawierającą nazwy podfolderów, lub false jesli nie znaleziono zadnych
  19. return $dirs_in;
  20. }
  21. ?>


Ten post edytował pyro 6.08.2008, 21:49:17
Go to the top of the page
+Quote Post
antyqjon
post
Post #6





Grupa: Zarejestrowani
Postów: 77
Pomógł: 27
Dołączył: 24.03.2002
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


@pyro: ta funkcja nie zadziała tak jak trzeba, bo pomyśl co dostaje is_dir (hint: brakuje czegoś w ścieżce).

A można przecież tak...
  1. <?php
  2. glob('nazwa_folderu/*', GLOB_ONLYDIR)
  3. ?>

Prostsze i czytelniejsze. Jak komuś trzeba nazwę wyłącznie podkatalogu, to wycięcie tego to jedna linijka w jakiejś pętli w której używa wartości z tej tablicy.
Go to the top of the page
+Quote Post
pyro
post
Post #7





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


antyqjon, dokładnie kiedy pisales posta, ja wyedytowalem swoj kod i juz na 100% bedzie dzialal dobrze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
fredman
post
Post #8





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

Ostrzeżenie: (0%)
-----


dzięki za szybką pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) użylem funkcji glob w taki sposób:

  1. <?php
  2. $lista = glob('folder/*', GLOB_ONLYDIR);
  3. foreach ($lista as $plik)
  4. echo "$plik<br>";
  5. ?>


tylko, że to zwraca mi wynik w taki sposób:

folder/podfolder1
folder/podfolder2
folder/podfolder3

a chciałbym tak:

podfolder1
podfolder2
podfolder3

da sie jakoś obciąć tą czesć "folder/" ?
Go to the top of the page
+Quote Post
antyqjon
post
Post #9





Grupa: Zarejestrowani
Postów: 77
Pomógł: 27
Dołączył: 24.03.2002
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


A choćby przez:

  1. <?php
  2. str_replace('folder/', '', $plik)
  3. ?>


Lub $lista zamiast $plik, żeby hurtowo sieknąć jeszcze przed pętlą.
Go to the top of the page
+Quote Post
fredman
post
Post #10





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

Ostrzeżenie: (0%)
-----


dzięki, działa świetnie !
Go to the top of the page
+Quote Post
-gox-
post
Post #11





Goście







a lepiej tak:

$folder = explode('/', $folder);
$folder = end($folder);
Go to the top of the page
+Quote Post
Kicok
post
Post #12





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


Ewentualnie:
  1. <?php
  2.  
  3.  
  4. $tmpDir = getcwd();
  5. chdir( 'folder/' );
  6.  
  7. $lista = glob( '*', GLOB_ONLYDIR );
  8. foreach( $lista as &$folder )
  9. {
  10. echo $folder . '<br>';
  11. }
  12.  
  13. chdir( $tmpDir );
  14.  
  15. ?>
Go to the top of the page
+Quote Post
pyro
post
Post #13





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


jest jeszcze z 1000 sposobów, autor już rozwiązał problem więc po co ciągniecie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 06:24