Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> FTP_RAWLIST i zliczanie plików, Funkcja licząca pliki na serwerze FTP
Kaluza
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.12.2010

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


Witam,

Mam mały skrypt który wykorzystuje ftp_rawlist.
Skrypt ma za zadanie zliczać wszystkie pliki na serwerze FTP.

1) Jak zablokować liczenie katalogów (ma liczyć tylko pliki)?
2) Jak zrobić aby liczył wszystkie pliki, nie tylko te z głównego katalogu?

Bawiłem się "./", wstawiając tam różne opcje ale nic nie pomaga.

  1. <?
  2. $ftp_server = 'mojserwer';
  3.  
  4. $ftp_user_name = 'mojlogin';
  5.  
  6. $ftp_user_pass = 'mojehaslo';
  7.  
  8.  
  9.  
  10. $conn_id = ftp_connect($ftp_server);
  11.  
  12. ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  13.  
  14. echo count( ftp_rawlist($conn_id, "./") );
  15. ?>

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ad2)
http://php.net/manual/en/function.ftp-rawlist.php
chyba u każdego w tym linku widać, że funkcja może przyjmować 3 parametry...

ad1) Zamiast count() to przelec po tej tablicy która dostajesz. Każdy jej element da ci info czy to katalog czy nie
Go to the top of the page
+Quote Post
Kaluza
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.12.2010

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


Dodałem wartość true, i nadal zlicza mi pliki z głównego katalogu (bez zawartości podkategorii).


  1. <?
  2. $ftp_server = 'mojserwer';
  3.  
  4. $ftp_user_name = 'mojlogin';
  5.  
  6. $ftp_user_pass = 'mojehaslo';
  7.  
  8.  
  9.  
  10. $conn_id = ftp_connect($ftp_server);
  11.  
  12. ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  13.  
  14. echo count( ftp_rawlist($conn_id, "./", true) );
  15. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Widać katalog, z którym się łączysz, nie ma już podkatalogów....

./ oznacza katalog bieżący a nie główny.
Go to the top of the page
+Quote Post
Kaluza
post
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.12.2010

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


Katalog z którym się łącze ma 30 katalogów i 2 pliki.
Wynik jaki otrzymuję to 32 - czyli skrypt łączy się z odpowiednim katalogiem.
Tylko nie mam pojęcia dlaczego nie chce wejść do tych 30 katalogów i zliczyć ich zawartość.

Usunąłem ./ i nadal to samo.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zrób co ci pisałem.... wyświet sobie jakie konkretnie ci katalogi zwraca. Będziesz wiedział na 100% czy to napewno to.
Go to the top of the page
+Quote Post
Kaluza
post
Post #7





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.12.2010

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


Ok, sprawdziłem. W tablicy mam te 30 katalogów i 2 pliki (nazwy się zgadzają).
Wygląda na to że nie działa ta rekurencja.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Widać, system na którym stoi ten ftp, nie obsługuje -R.... W takim wypadku musisz to obsłużyć ręcznie, czyli przeleciec po tablicy i jeśli to katalog, to znowy wykonac ftp_rawlist() tym razem na akutlanie przetwarzanym katalogu
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: 23.08.2025 - 07:01