Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][FTP] Lista plików wybranego formatu
Forum PHP.pl > Forum > PHP
1oBuZ
Witam!




Jak zrobić listę wszystkich plików wybranego formatu znajdujących się na serwerze FTP w wszystkich folderach?




np. lista plików .php

test.php

katalog/test.php

itp.




Za wszelkie wskazówki z góry dziękuję!

piotr94
1. połączenie ftp/otwarcie lokalnego katalogu
2. pzeszukanie katalogu głównego, sprawdzanie rozszerzeń (jeśłi zgodne dodaj do listy) oraz typów plików (jeśli katalog przeszukaj go jako podkatalog)
3. zbudowanie listy
w czym konkretnie masz problem?
1oBuZ
Mam problem z przeszukaniem wszystkich katalogów i podkatalogów FTP z plikami o danym rozszerzeniu np. .php

Próbowałem funckcją glob lecz nic z tego.




Chodzi tutaj o to, aby wszystkie odnalezione na całym serwerze pliki php pokazać z ścieżką dostępu (np. folder/folder/folder/test.php)

piotr94
zrób sobie rekurencję, w pseudokodzie wygląda to tak:
  1. function find($dir){
  2. 1. otwórz katalog $dir
  3. 2. wyświetl po kolei elementy katalogu
  4. a) jeśli to katalog to wywołaj find($dir.'/'.$nazwa_aktualnego_el);
  5. b) jeśli to plik to sprawdź za pomocom ereg czy nazwa kończy się ciągiem .php:
  6. * jeśli nie to nierób nic
  7. * jeśli tak to wyświetl nazwę pliku echo($dir.'/'.$nazwa_aktualnego_el);
  8. jeśli to nie koniec folderu wróć do punktu 2, jeśli koniec to wyjdź z funkcji
  9. }
Czahoo
Poniżej podam funkcję, która może okazać się bardzo przydatna w opisanym przez ciebie problemie:
  1. // Katalog
  2. $url='sciezka';
  3. // Rozszerzenia plików
  4. $rozszerzenia = array("php");
  5.  
  6. function e_dir($dir_url, $rozszerzenia)
  7. {
  8. if ($dir =@opendir($dir_url)) {
  9. while ($file = readdir($dir)) {
  10. $t_file=explode(".", "$file");
  11. $roz=$t_file[count($t_file)-1];
  12. if((!is_dir($dir_url."/".$file))&&($file != '.')&&($file != '..')&&(in_array($roz, $rozszerzenia))) {
  13. $pliki[] = $file;
  14. }
  15. }
  16. closedir($dir);
  17. }
  18. return $pliki;
  19. }
  20.  
  21. $pliki=e_dir($url, $rozszerzenia);


Podana funkcja zwraca ci wszystkie nazwy katalogów i plików w danym folderze w formie tablicy.
Po prostym przekształceniu, możesz sprawić, aby ta funkcja podawała również ścieżkę do konkretnego pliku/katalogu.
Reszty chyba już nie muszę tłumaczyć.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.