Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] system plikow - problemy z katalogami :/
tojakw
post 18.12.2004, 14:29:44
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.09.2004

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


Helo,
mam kilka problemow z systemem plikow (a raczej katalgow) w php :/


1.

Jak sprawdzic, jakie katalogi znajduja sie 'jakims' katalogu? Mam tak ulozone katalogi:
Kod
-> fotoalbum (katalog)
    -> main.php (skrypt)
    -> foto (katalog)
        -> karol (katalog)
            -> ja.jpg (grafika)
        -> agata (katalog)
        -> basia (katalog)

I chcialbym sprawdzic jakie katalogi znajduja sie w katalogu -foto-, wiec napisalem cos takiego
  1. <?php
  2. //main.php
  3. function menu($sciezka){
  4.  
  5. if (!($dp = opendir($sciezka))) die (&#092;"Blad\");
  6. while($file = readdir($dp)) {
  7. if(is_dir($file) && $file != '.' && $file != '..') 
  8.  echo $file;
  9. }
  10. }
  11.  
  12. $sciezka = './foto/'; 
  13. menu ($sciezka);
  14. ?>

I tu nie dziala funkcja is_dir() :/ tj. nie wyswietla katalogu.
Dlaczego?


2.

Czy mozna jakos wyciagnac date utworzenia katalogu?
  1. <?
  2. echo &#092;"data /<br>\".date('j F Y', filemtime($sciezka)); 
  3. ?>

Ten kody nie pokazuje daty utworzenia katalou, tylko date najmlodszego "ostatnio uzywanego" pliku w tym katalogu. W manualu nie znalazlem zadnej funkcji, ale moze ktos bedzie wiedzial winksmiley.jpg


3.

  1. <?
  2. function info ($sciezka){
  3.  
  4. $wielkosci = array();
  5.  
  6. if (!($dp = opendir($sciezka))) die (&#092;"Blad\");
  7. while($file = readdir($dp)) {
  8. if($file != '.' && $file != '..')
  9. $ilosc++;
  10. $wielkosci[] = filesize($file); //linia 25
  11. }
  12.  
  13.  
  14. echo &#092;"album / \".basename($sciezka).\"<br>\";
  15. //echo \"data /<br>\".date('j F Y', filemtime($sciezka));
  16. echo &#092;"ilosc zdjec / \".$ilosc.\"<br/>\";
  17. //echo \"rozmiar / \".disk_total_space($sciezka);
  18.  
  19. //is_array($wielkosci);
  20. }
  21.  
  22. $sciezka = './foto/karol';
  23. info($sciezka);
  24. ?>


Jak obliczyc rozmiar plikow w katalogu? Myslalem, ze za pomoca filesize() zapisze wielkosc do tablicy, i potem zsumuje, ale pokazuja sie takie bledy:
Kod
Warning: filesize(): Stat failed for [nazwa pliku] (errno=2 - No such file or directory) in C:\(...)pokaz.php on line 25


Jest tez taka funkcja disk_total_space ( string katalog), probowalem jej uzyc, ale ona nic nie zwraca winksmiley.jpg
Cytat(manual)
Podając łańcuch zawierający katalog, funkcja ta zwróci całkowity rozmiar (w bajtach) w odpowiadającym mu systemie plików lub partycji dysku.

Co to jest ten "łańcuch zawierający katalog"? Nalezy uzywac jakis dirname/basename/itd?

Pozdrawiam, i dziekuje za pomoc snitch.gif

(to forum, to moja ostatnia deska ratunku winksmiley.jpg

PS. http://forum.php.pl/index.php?showtopic=24021 nie jestem sam winksmiley.jpg
Go to the top of the page
+Quote Post
mike
post 18.12.2004, 18:18:13
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


1.
Skopiowałem idealnie to co napisałes i zadziałało. Więc nie wiem o co Ci chodzi. Chociaż nie trzeba kopiować żeby powiedzieć że kod jest w pożądku.

3.
  1. <?php 
  2. // ...
  3. while($file = readdir($dp)) {
  4. if($file != '.' && $file != '..')
  5. $ilosc++;
  6. $wielkosci[] = filesize($file); //linia 25
  7. }
  8. // ...
  9. ?>

Zjadłeś klamry. Ujmij linię 6,7 u mnie powyżej a 10,11 u Ciebie i zadziała. Bo teraz podbijasz ilośc jak $fie jest różne od '.' i '..' ale filesize używasz dla każdego bo w if'a łapie się tylko pierwsza instrukcja.
Go to the top of the page
+Quote Post
tojakw
post 18.12.2004, 19:44:52
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.09.2004

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


Cytat
1.
Skopiowałem idealnie to co napisałes i zadziałało. Więc nie wiem o co Ci chodzi. Chociaż nie trzeba kopiować żeby powiedzieć że kod jest w pożądku.


hmm... u mnie nie dziala ;/ mam php w wersji 4.3.9RC1 pod Windows
@mike_mech: wyswietla katalogi: karol, agata, basia?
To moze ktos trzeci sprawdzi, czy ten kod chodzi snitch.gif no i da znac winksmiley.jpg

3.
  1. <?
  2. if (!($dp = opendir($sciezka))) die (&#092;"Blad\");
  3. while($file = readdir($dp)) {
  4. if($file != '.' && $file != '..'){
  5. $ilosc++;
  6. $wielkosci[] = filesize($file);
  7. }
  8. }
  9. ?>

Fakt, zapomnialem o klamrach, ale dalej nie dzierga ;/ wciaz pokazuje te same ostrzezenia sad.gif
Go to the top of the page
+Quote Post
mike
post 18.12.2004, 21:23:19
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


1.
Cytat
-> fotoalbum (katalog)
  -> main.php (skrypt)
  -> ...
  ...

  1. <?php
  2. $sciezka = './foto/';
  3. ?>

Wniosek : fotoalbum != foto
Go to the top of the page
+Quote Post
tojakw
post 18.12.2004, 22:00:32
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.09.2004

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


to jaka mam podac sciezke?

pozdro

Ten post edytował tojakw 18.12.2004, 22:01:21
Go to the top of the page
+Quote Post
mike
post 18.12.2004, 22:26:48
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(mike_mech @ 2004-12-18 21:23:19)
1.
Cytat
-> fotoalbum (katalog)
   -> main.php (skrypt)
   -> ...
   ...

  1. <?php
  2. $sciezka = './foto/';
  3. ?>

Wniosek : fotoalbum != foto

OJ, przepraszam, nie doczytałem.
Ale faktem jest to że jak zrobię tak :
  1. <?php
  2.  
  3. $sciezka = './';
  4.  
  5. if ( ! ( $dp = opendir( $sciezka ) ) ) die ( &#092;"Blad\" );
  6. {
  7. while( $file = readdir( $dp ) )
  8. {
  9. if( $file != '.' && $file != '..' )
  10. {
  11. $ilosc++;
  12. $wielkosci[ $file ] = filesize( $file );
  13. }
  14. }
  15. }
  16.  
  17.  
  18. echo '<pre>'
  19. print_r( $wielkosci );
  20. echo '</pre>';
  21.  
  22. ?>

To działa. I wszystki skrypty, które podałeś działają. Więc nie wiem w czy problem. Podaj może może jakie błędy wywala php ( o ile wywala ).
Go to the top of the page
+Quote Post
tojakw
post 19.12.2004, 13:12:08
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.09.2004

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


3.

Oka, skrypt dziala snitch.gif ale mam jeszcze pytanie:
Kod
-> fotoalbum (katalog)
   -> main.php (skrypt)
   -> foto (katalog)
       -> karol (katalog)
           -> php5.jpg (grafika)
           -> Pict0093.jpg (grafika)
       -> agata (katalog)
       -> basia (katalog)

Ten skrypt zapisalem w pliku main.php i dziala, wszystko jest jak ma byc (pokazuj main.php i foto) biggrin.gif
Ale jak zrobic, zeby policzyl rozmiar plikow w foto/karol? Zmiana sciezki na:
Kod
$sciezka = './foto/karol';

zwraca
Cytat
Warning: filesize(): Stat failed for php5.jpg (errno=2 - No such file or directory) in C:\Program Files\Apache Group\Apache2\htdocs\fotoalbum\main.php on line 51

Warning: filesize(): Stat failed for Pict0093.JPG (errno=2 - No such file or directory) in C:\Program Files\Apache Group\Apache2\htdocs\fotoalbum\main.php on line 51


Array
(
    [php5.jpg] =>
    [Pict0093.JPG] =>
)

;/

1.

Cytat
Cytat

1.
Skopiowałem idealnie to co napisałes i zadziałało. Więc nie wiem o co Ci chodzi. Chociaż nie trzeba kopiować żeby powiedzieć że kod jest w pożądku.


hmm... u mnie nie dziala ;/ mam php w wersji 4.3.9RC1 pod Windows
@mike_mech: wyswietla katalogi: karol, agata, basia?
To moze ktos trzeci sprawdzi, czy ten kod chodzi snitch.gif no i da znac winksmiley.jpg


No nie dziala ;/ to moze jakas trzecia osoba sprawdzi, moze ja mam cos zwalone, a kod jest poprawny...
Go to the top of the page
+Quote Post
mike
post 19.12.2004, 13:52:03
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Dziwna sprawa, fakltycznie wywala błedy w stylu :
Cytat
Warning: filesize(): Stat failed for Pict0093.JPG (errno=2 - No such file or directory) in C:\Program Files\Apache Group\Apache2\htdocs\fotoalbum\main.php on line 51

Nie wiem, poddaję się sad.gif
Go to the top of the page
+Quote Post
tojakw
post 19.12.2004, 14:44:41
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.09.2004

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


Kurcze, chcialem sobie napisac prosta galerie i teraz klapa :/

Co do drugiego problemu, to nie ma sprawy, w jakims pliku zapisze sobie daty kiedy tworzylem foldery.

Ale zostaja jeszcze dwa problemy, konieczcie musze je rozwiazac :/ w zyciu bym nie przypuszczal (dopiero zaczynam php i w ogole jakie takie "programowanie") ze takie drobnostki moga zniechecac do dalszej pracy :/ I nie wierze, ze nikt nie wie jak policzyc rozmiar katalou i jak sprawdzic jakie foldery znajduja sie w folderze... przeciez to chyba nie jest jakis kosmos?

Jezeli ktos wie, to prosze o pomoc.
A mike_mech zasluzyl na gratulacje winksmiley.jpg pozdrawiam smile.gif
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: 14.06.2025 - 03:11