[Résolu] Lister TOUTES les images d'un repertoire et des sous repertoires ..
Forum Programmation : [Résolu] Lister TOUTES les images d'un repertoire et des sous repertoires ..
Lire la meilleure réponse, apportée par crazycat@idn.
Salut !
Je cherche (deseserement) un script qui me permette de lister toutes les images ( png pour le coup) d'un repertoire et de ses sous repertoire ..
et que je "recupere" le chemin de chaque image ... genre :
echo $chemin'/'$fichiers:
qui me donne
repertoire/a/df/thumbs/image.png
Est ce possible en php ?
Code :
|
Et pour générer ton fichier:
Code :
|
je doit pouvoir retrouvais quelque par dans mais milliard de fichier ... un script qui liste tous les fichier dont le nom comporte plus de 7 caractère ( extension compris dont une pour image en png c'est 3 puisque .png sa fais 4 ^^ )
et ce script fais un tableur pour les afficher ^^
mais il liste pas les sous dossier -_-'' je poste sa des que je le retrouve
Microsoft se fout-il pas ne notre tete avec son XP ???
Répondre à andrelec1
Salut !
pour "scanner" un repertoire precis . je sais faire ..
Mais là, je doit "fouiller" les sous repertoires sur 23 voir 4 niveaux ...
et recup le nom et l'url relative du fichier ...
(pour faire une balise img )
j'ai ca comme code :
<?
$a = 0;
$handle = opendir("plugins/kissgallery/photos" );
while (($file = readdir())!=false) {
clearstatcache();
if($file!=".." && $file!="." && substr($file, -5, 1)=="s" )
{
echo '<li style="text-align: center;"><img height="100" src="/plugins/kissgallery/photos/'.$file.'" alt="Cliquez ici" ></li>';
}
}
closedir($handle);
?>
Tu peux essayer avec scandir() qui est justement là pour ça.
Répondre à crazycat@idn
Oui, j'ai vu Scandir, mais j'ai pas trouvé un script "complet" pour le faire .
je fait pas bien programmer .. ( je suis LARGEMENT meilleur en copier/coller
)
Car ce que je trouve ne scanne QUE le rep . et n'ouvre pas les sous rep ...
Et surtout ne permet pas de recup l'URL
Dans mon cas, je doit recup TOUS les fichiers png d'un ensemble de rep contenu dans /photo/ ..
et le chemin relatif correspondant a chaque fichier ..
Pourtant, il suffisait de regarder un peu plus bas dans la page donnée:
Code :
|
Répondre à crazycat@idn
Salut !
Enffet, ce script semble convenir .. MAIS .. comment "recupere" les variables ??
car moi, pas assez bon pour ça
pour chaque fichier *.png, je veut faire un :
echo '<img src= '$chemin/$fichier.png'> ..
pour afficher TOUTES les images png dans les sous repertoires ;;
c'est la recup des "variables qui me coince ...
re !
Bon, je suis arrivé a adapter un truc ...
Code :
|
Qui me retourne :
| Citation : Array ( [0] => pedigree/thumb/0/0/afdd717dead3a878e6564b9800.png [1] => pedigree/thumb/0/0/b2415de3c6c624dfa8780134d00.png [2] => pedigree/thumb/0/1/b0dbeff0c40f7f2200e657ee10.png [3] => pedigree/thumb/0/1/b4feecaa12807687710.png [4] => pedigree/thumb/0/2/b00d25ccbdf357382f5bc400220.png [5] => pedigree/thumb/0/2/b01118c3d2b157c73e578984520.png [6] => pedigree/thumb/0/2/b0468cf8a79acc296becbf9120.png [7] => pedigree/thumb/0/3/b14f0654271e44456b979dde30.png [8] => pedigree/thumb/0/4/affdf50682f71dfd0c737786340.png [9] => pedigree/thumb/0/4/b00e2d8d491475bc2c94c6ad040.png [10] => pedigree/thumb/0/5/afdd5269ea62fbe92a484196050.png [11] => pedigree/thumb/0/5/afde132c9ef42c723a5b0f10250.png [12] => pedigree/thumb/0/5/afdf84a44f4156d1fdedfed4b50.png [13] => pedigree/thumb/0/5/b00d275b16912807d0f64bf4650.png [14] => pedigree/thumb/0/5/b0c285302ec606653ba3e316950.png [15] => pedigree/thumb/0/5/b4bb7c966956efefb50.png [16] => pedigree/thumb/0/6/b281dfd46c92a159860.png [17] => pedigree/thumb/0/7/b09dce0b04b4fedeca43f8ff070.png [18] => pedigree/thumb/0/7/b3c21bd85d632cb4b70.png [19] => pedigree/thumb/0/7/b4bb800da014bfb7c70.png [20] => pedigree/thumb/0/8/afe2b0470cd546a0d8317621b80.png [21] => pedigree/thumb/0/8/b059d342bd01b074c66ee240580.png [22] => pedigree/thumb/0/8/b0caf8a8c8528300f4bdf3bd280.png [23] => pedigree/thumb/0/8/b24c9ea46e42d0670f263681080.png [24] => pedigree/thumb/0/9/afe2ad0a6bc566e5c6440cbef90.png [25] => pedigree/thumb/0/9/afe3240f547bbdb9b27de73f90.png [26] => pedigree/thumb/0/9/afe336cad8d53df6a7206eba990.png [27] => pedigree/thumb/0/9/b054ffd2dd579a6fa69264ffa90.png [28] => pedigree/thumb/0/9/b0643376ecc395f0273071bd90.png [29] => pedigree/thumb/0/9/b281e361e4e72f9b690.png [30] => pedigree/thumb/0/9/b3b1fbbf0c43e2b6590.png [31] |
alors là, moi je butte ..
je veut seulement :
| Citation : pedigree/thumb/0/0/afdd717dead3a878e6564b9800.png
|
Donc, tu modifies la fin:
Code :
|
Répondre à crazycat@idn
MERCI !!
Ca marche !
Par contre, .. va falloir que je trouve un truc pour "limiter" le nombre ...
Car voila, j'ai 900 et quelques images dans les sous rep ..
je veux faire un carousel
j'en ai un qui marche, mais avec un rep de 25 images => http://www.dogo-canario.fr/code2.php
Celui que je viens de "programmer (avec ton aide ..
) "pointe" le rep de 900 images ..
donc ca "bugge un peu" ...
=> http://www.dogo-canario.fr/essai.php
comment m'y prendre pour limiter a .. 25 ou 50 images .. mais de facon aléatoire ..
pour pas toujours avoir les mêmes .. ?
Dans l'idée, ca serai de generer un nombre aléatoire entre 0 et 25 qu'on appelle $rand.. et de prendre un fichier tous les $rand .
C'est la solution ? ou y'a mieux ?
Le plus simple, en restant sur ton principe actuel (donc la recherche de tous les fichiers au départ) serait d'ensuite manipuler ton tableau comme ça:
Code :
|
Par contre, je te conseillerai d'utiliser un système de cache pour ne pas chaque fois faire le tour de tous tes répertoires.
Répondre à crazycat@idn
| crazycat@idn a écrit :
|
Salut !
CA MARCHE !!!!
Merci !!
Comment tu ferai pour "mettre en cache" ?
car la .. aucun idée du "systeme" ..
Bon, je mets mon code entier .. si ca peut servir a quelqu'un !!:
Code :
|
Pour mettre en cache, la solution la plus simple à mon avis est de mettre le listing dans un fichier, et de réécrire ce fichier s'il à plus d'une certaine durée (par exemple 24h).
Donc, la fonction te sert à remplir ce fichier (si besoin est), et quoi qu'il advienne, tu travaille avec le contenu de ce fichier.
Répondre à crazycat@idn
Salut !
Ecrire un fichier .. oué .. ca je crois savoir faire ..
(je l'ai déja fait pour autre chose .. )
Donc dans ce fichier, on met la liste d'url ??
et on "chope" X lignes a chaque fois ? c'est ca ?
Car y'a un truc que j'ai trouvé, mais je sais pas du tout si c'est applicable
=> http://classes.scriptsphp.org/example.cache.1
Peut on mettre en cache une fonction ? ou c'est le resultat ?
car la, moi, chui perdu !
Tu mets dans ton fichier la liste des urls, et quand tu veux te servir du fichier, tu fais:
Code :
|
Et pour générer ton fichier:
Code :
|
Message édité par crazycat@idn le 05-11-2009 à 18:46:47
Répondre à crazycat@idn
Salut !
Merci !
MAIS ..
Tu as oublié de donner un parametre a fopen ('file",'r+') par exemple ..
Et chr(13) suffit, sinon, ca fait des lignes vides ..
Sinon, c'est Nickel !
Vous pouvez tester en live sur le site www.dogo-canario.fr
J'ai meme enrichi mon script d'un lien ..
voici le scipt complet :
Code :
|
Ah oui, désolé pour l'option de lecture. A ta place, je mettrais simplement 'w' plutôt que 'r+'.
Et tu ne devrais pas mettre l'extension .php mais plutôt .txt ou .db, c'est moins risqué.
Répondre à crazycat@idn
Salut !
Ok, je modifie par w ..
Mais pour le .txt ou .db ;; les deux peuvent etre afficher "brut" dans le navigateur ... pas le php .
donc pourquoi moins risquer ?
Pour info, si ca interrresse quelqu'un, je peut lui envoyer par mail le fichier source, les .js en zip ..
Ton fichier .php ne contient pas d'instructions php, il sera donc affiché comme un fichier texte. La preuve: http://www.dogo-canario.fr/list.php
Le mieux serait encore de l'appeler .htlist , il sera automatiquement bloqué (en affichage) par le serveur (s'il est bien configuré)
Répondre à crazycat@idn
Voila qui est modifié
Merci pour tout !
T 'est super cool !
Il y a 579 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
