![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Jestem w trakcie robienia skryptu do katalogowania plików. To, że jestem poczatkujący zmusza mnie do zapytania Was ![]() 1. Jak zliczyć ilość katalogów i osobno plików w katalogu którym znajduje sie skrypt "/"?? 2. Poprzez funkcję disk_total_space(); uzyskuje aktualny rozmiar katalogu w którym znajduje sie skrypt (w bajtach). Jak zrobic, aby skrypt zsumował tylko rozmiar plików znajdujacych się w katalogu w mb z dokladnoscia do 2 miejsc po przecinku? 3. Jak posortować wyswietlane pliki np wg nazw?? Z gory serdeczne DZIEKI temu, który mi pomoze. Męczę się z tym juz tyle czasu, ze jeszcze trochę a powyrywam sobie wlosy z glowy (ktorych i tak mam malo ![]() Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ad. 1.
Polecam funkcję [manual:aaf2fd0149]readdir[/manual:aaf2fd0149], która przeczyta zawartość katalogu... A w szczególności 2 przykład. Aby odróżnić plik od katalogu wystarczy do tego funkcja [manual:aaf2fd0149]is_file[/manual:aaf2fd0149] lub [manual:aaf2fd0149]is_dir[/manual:aaf2fd0149]. Ad. 2. Do odczytywania rozmiarów plików przyda się funkcja [manual:aaf2fd0149]filesize[/manual:aaf2fd0149]... Potem suma. Sformatować możesz za pomocą funkcji np. [manual:aaf2fd0149]printf[/manual:aaf2fd0149]. Ad. 3. Ten problem możesz rozwiązać pobierając pliki (wspomnianą funkcją [manual:aaf2fd0149]readdir[/manual:aaf2fd0149]) do tablicy, a później tylko [manual:aaf2fd0149]sort[/manual:aaf2fd0149]. Popróbuj, a jeśli Ci się nie uda pokaż co Ci nie wychodzi. Pozdrawiam -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
a moze moglibys jakies przyklady podac :oops: ?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Hmm, pokaże Ci jak ma wyglądać podstawowy kod do przeczytania zawartości katalogu (z podziałem na pliki i katalogi):
[php:1:aeca3a415a]<?php $dir = './'; $dirs = Array(); $files = Array(); if($handle = opendir($dir)) { while(false !== ($file = readdir($handle))) { if($file != "." && $file != "..") { if( is_dir($file) ) { $dirs[] = $file; } else { $files[] = $file; } } } closedir($handle); } print_r($dirs); print_r($files); ?>[/php:1:aeca3a415a] Reszta należy do Ciebie... -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
co do 1 mojego pytania- > w takim razie nie wystarczy tylko zliczyc funkcja count()
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat co do 1 mojego pytania- > w takim razie nie wystarczy tylko zliczyc funkcja count()
![]() Otóż to ![]() -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
liczbe plików w danym katalogu zlicza mi ok, jednak przy próbie zliczenia ilosci katalogow count($dirs) zwraca zawsze 1
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
A ile masz katalogów?
Wogóle, którą masz wersję php? -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
katalogi mam 3
php Version 4.1.0 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
U mnie skrypt działa bez problemu...
Możliwe, że php w tej wersji miało buga, chociaż nic nie znalazłem. Ale powiedz mi jeszcze co wypisują na ekran funkcje print_r()? Czy listują całą zawartość katalogu? -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
funkcje pring_r() prawidlowo odczytuja katalogi i pliki katalogow mam 3 i tak samo zwraca je ta funkcja wiec nie wiem co jest
![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj [manual:8bbf95cc01]sizeof[/manual:8bbf95cc01]...
Chociaż to alias count, ale przynajmniej zobaczymy jak sie zachowa... -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
juz jest ok dziex, acha....jak w tym skrypcie wykluczyć pliki .php
![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
aaa sorki glupie pytanie !! funkcja ereg()
![]() |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Hmm, jest na to kilka sposobów...
Najprostrzy to użycie funkcji [manual:3075ef0c1e]glob[/manual:3075ef0c1e], jednak jest ona dostępna dopiero od wersji 4.3.0... Zaproponuję tak: [php:1:3075ef0c1e]<?php // ... if($file != "." && $file != ".." && !eregi("^(.*).php$", $file)) // ... ?>[/php:1:3075ef0c1e] -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
moze pomoglbys mi jeszcze jak zrobic ten skrypt, ktory poda mi w mb sume plikoof ?
![]() |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Napewno sobie sam poradzisz...
Sugestia: stwórz jeszcze jedną tablicę... -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
Z wielka pomoca powstalo to, dla zainteresowanych
![]() [php:1:a2fd257bc1]<?php $filesize = Array(); $dirs = Array(); $files = Array(); $dir = './'; if($katalog = opendir($dir)) { while(false !== ($file = readdir($katalog))) { if($file != "." && $file != "..") { if( is_dir($file) ) { $dirs[] = $file; } else { $filesize[] = filesize($file); $files[] = $file; } } } closedir($katalog); } $suma = sprintf("%.2f", array_sum($filesize)/1048576); $pliki=count($files); $katalogi=count($dirs); echo"Liczba katalogow: $katalogi<br>Liczba plikow: $pliki <br>Rozmiar plikow: $suma"; ?>[/php:1:a2fd257bc1] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 10:37 |