Page 1 sur 2

compter fichier dans un dossier tres , voir trop lent

Posté : 22 sept. 2010, 10:21
par sax76
bonjour à tous ,
voila j'ai dossier /upload/ qui contient on va dire 4000 fichiers .
voulant compter et afficher le nb de fichiers sur une page j'ai mis ce script en iframe :
<?
$files = glob("upload/*");
$compteur = count($files);
?>
Fichiers :
<? echo $compteur; ?>
au début cela compté assez vite mais une fois les 2000 attend cela a ralenti .
actuellement lors du premier affichage il faut , on va dire , +/- 6 sec pour afficher sur ma page le nb de fichiers compté .

existe un code pour compter on va presque dire instantanément , ou alors une façon de travailler avec le code du dessus d'une autre façon pour éviter le lag du comptage.

Cdt

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 22 sept. 2010, 10:39
par Berzemus
Je ferais une boucle avec readdir(), ça devrait aller plus vite que glob(). Ou alors utilise scandir(), ce qui pourrait encore être plus rapide.

Tu es sous windows ou linux ?

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 22 sept. 2010, 10:46
par sax76
je suis sous 7 , pkoi ?

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 22 sept. 2010, 16:53
par stealth35
essaye plutôt avec DirectoryIterator + iterator_count

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 22 sept. 2010, 17:46
par sax76
oula , vous m'embroyez hihi
mon niveau ras de fleurs en php .... m'a fait avoir froid dans le dos la :)

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 22 sept. 2010, 17:53
par stealth35
oula , vous m'embroyez hihi
mon niveau ras de fleurs en php .... m'a fait avoir froid dans le dos la :)
mais non c'est pareil que toi :wink:
$files = new DirectoryIterator("upload");
$compteur = iterator_count($files);
EDIT : les balises php c'est <?php ?>

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 22 sept. 2010, 20:55
par AB
@sax76

Alors ça va sensiblement plus vite ?

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 22 sept. 2010, 23:05
par sax76
super vite .......... en plantage


Fatal error: Cannot instantiate non-existent class: directoryiterator
a la ligne 3
//$files = glob("upload/*");   <= mon ex code
//$compteur = count($files);  <= mon ex code 
$files = new DirectoryIterator("upload");
$compteur = iterator_count($files);
echo $compteur; 
:(

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 22 sept. 2010, 23:32
par sax76
bon en cherchant different ex avec scandir & readir

j'ai reussi a faire ça :
$compteur=0;
$handle=@opendir("upload/"); 
while ($fichier = @readdir($handle)){
    $listing[$fichier]=$compteur;
    $compteur++; 
} 
echo $compteur; ?>
le chiffre s'affiche rapidement cette fois <1sec pour + de 4500

desolé j'ai vraiment pas reussi a comprendre le directoryiterator

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 23 sept. 2010, 00:08
par stealth35
super vite .......... en plantage


Fatal error: Cannot instantiate non-existent class: directoryiterator
a la ligne 3
//$files = glob("upload/*");   <= mon ex code
//$compteur = count($files);  <= mon ex code 
$files = new DirectoryIterator("upload");
$compteur = iterator_count($files);
echo $compteur; 
:(
t'as quel version de php ? (php 4 et des poussières je suppose)

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 23 sept. 2010, 08:17
par sax76
comment puis je le savoir ?
c'est la version de mon hebergeur c'est ça ?


par contre le script que j'ai mis au dessus lag aussi moins que le premier mais lag quand meme :(

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 23 sept. 2010, 09:46
par xTG
phpinfo();
Pour connaître les informations. ^_-

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 23 sept. 2010, 11:37
par sax76
ca me retourne ça :

PHP Version 4.4.9

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 23 sept. 2010, 11:51
par Berzemus
ca me retourne ça :

PHP Version 4.4.9
Hé ben, qu'on puisse encore voir ça en 2010, ça m'épate.

bien appliqué, le readdir. scandir donnerait des résultats encore plus rapides à mon avis.

Re: compter fichier dans un dossier tres , voir trop lent

Posté : 23 sept. 2010, 15:23
par sax76
Hé ben, qu'on puisse encore voir ça en 2010, ça m'épate.
OVH :)
bien appliqué, le readdir. scandir donnerait des résultats encore plus rapides à mon avis.

le script que j'ai mis au dessus avec readdir est pas bon alors ?