Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wylistowanie podfolderow i przypisanie do zmiennych?
rom4n
post 5.09.2007, 18:16:16
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 8.02.2007

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


Witam, potrzebuję napisać skrypt, który przeszuka folder główy na serwerze i wylistuje mi nazwy wszystkich podfolderów. Nie interesuje mnie ścieżka do tych podfolderów, jedynie sama nazwa. Skrypt musi "omijać" folder 'include' tzn niebrać go pod uwagę. Myślalem, żeby przeszukanie zrobić funkcją dir(); ale nie wiem jak zwrócić uwagę funkcji na przeszukanie 'serwera' a nie folderu, oraz jak przekazać tą listę do formularza rozwijanego. Czy potrafi mi ktoś pomuc?
Z góry dziękuję i pozdrawiam.
Jarek

Ten post edytował rom4n 5.09.2007, 18:17:01
Go to the top of the page
+Quote Post
Krzysztof Klimon...
post 5.09.2007, 20:23:49
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.09.2007

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


Tzn. chcesz wyciągnąć listę katalogów z innego serwera niż ten na którym uruchamiasz skrypt?

Możesz np. ściągnąć za pomocą curla index z katalogu który chcesz przeszukać (zakładając, że jest to możliwe - jeśli serwer ma wyłączone pokazywanie listy plików lub ma tam wrzuconą "stronę" to po zabawie) a potem odpowiednim wyrażeniem regularnym wyciągnąć wszystkie katalogi pasujące do wzorca jaki sobie wymyślisz..
Go to the top of the page
+Quote Post
batman
post 5.09.2007, 20:29:54
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




  1. <?php
  2. $dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('nazwa_katalogu'), RecursiveIteratorIterator::SELF_FIRST);
  3.  
  4. foreach ($dir as $file) {
  5. if($file->isDir() && $file->getFilename() != 'include') {
  6. echo $file->getFilename();
  7. echo '<br />';
  8. }
  9. }
  10.  
  11. ?>


Pisałem bez testowania, więc możliwe, że coś może się rozjechać. Instrukcja warunkowa ominie tylko foldery o nazwie include, jednak nie ominie folderów w nich zawartych.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
rom4n
post 5.09.2007, 21:50:29
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 8.02.2007

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


Skrypt ma wyszukiwać tylko nazwy folderów znajdujacych się na folderze (root) nie ma przeszukiwać podkatalogów. Tylko jak później mogę przekazać te nazwy do formularza rozwijanego? bo zależy mi na przekazaniu zmiennej z formularza, będącej nazwą wybranego katalogu.
Go to the top of the page
+Quote Post
batman
post 6.09.2007, 07:09:48
Post #5





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Zakładając, że będziesz miał dostęp do katalogu głównego, możesz to zrobić w taki sposób:

  1. <?php
  2. $dir = new DirectoryIterator('nazwa_katalogu');
  3.  
  4. $adirs = array();
  5.  
  6. foreach ($dir as $file) {
  7. if(!$file->isDot() && $file->isDir() && $file->getFilename() != 'include') {
  8. $adirs[] = $file->getFilename();
  9. }
  10. }
  11.  
  12. ?>
  13.  
  14.  
  15. <form name="formularz" method="post">
  16. <select name="katalogi">
  17. <?php foreach($adirs as $onedir): ?>
  18. <option value="<?=$onedir?>"><?=$onedir?></option>
  19. <?php endforeach; ?>
  20. </select>
  21. </form>


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 08:43