A voir également:
- Lister des dossier en PHP
- Dossier appdata - Guide
- Mettre un mot de passe sur un dossier - Guide
- Easy php - Télécharger - Divers Web & Internet
- Dossier rar - Guide
- Dossier démarrage - Guide
6 réponses
salut;
pour chacun de tes $rep.$dossier tu fait dans ta boucle while et condition if:
if(count(glob($rep.$dossier."*.txt")) === 0 )
// tu fait ton traitement ici
pour chacun de tes $rep.$dossier tu fait dans ta boucle while et condition if:
if(count(glob($rep.$dossier."*.txt")) === 0 )
// tu fait ton traitement ici
rescue
Messages postés
1039
Date d'inscription
vendredi 16 novembre 2007
Statut
Contributeur
Dernière intervention
27 mars 2019
136
3 juin 2011 à 13:16
3 juin 2011 à 13:16
Bonjour,
Moi j'irai plus vers la fonction substr().
qui va extraire une chaine de caractère différent de "txt" (donc égal à "jpg")
if (substr( $dossier, -3, 3) == "jpg" ) {
echo $dossier;
}
pour plus d'info sur substr : http://www.manuelphp.com/php/function.substr.php
@+
Mieux vaut paraitre 'CON' 5mn, que de le rester toute sa vie.
Moi j'irai plus vers la fonction substr().
qui va extraire une chaine de caractère différent de "txt" (donc égal à "jpg")
if (substr( $dossier, -3, 3) == "jpg" ) {
echo $dossier;
}
pour plus d'info sur substr : http://www.manuelphp.com/php/function.substr.php
@+
Mieux vaut paraitre 'CON' 5mn, que de le rester toute sa vie.
Merci pour aide à tous les deux.
Mais je crois que vous "oublié" un détail (désolé:-))
Mon arborescence est la suivante:
albums/dossier1/texte.txt
albums/dossier1/photo1.jpg
albums/dossier1/photo2.jpg
albums/dossier1/photo3.jpg
albums/dossier2/texte.txt
albums/dossier3/texte.txt
albums/dossier3/photo1.jpg
albums/dossier3/photo2.jpg
albums/dossier3/photo3.jpg
et la liste que je veux obtenir c'est:
dossier1
dossier3
sans dossier 2, puisque celui-ci ne contient pas de photos.
Je pense que vos deux solutions
if(count(glob($rep.$dossier."*.jpg")) !== 0 )
ou
if (substr( $dossier, -3, 3) == "jpg" )
peuvent fonctionner à condition d'arriver à lire le contenu des sous-repertoires dossier1, dossier2, dossier3 pour savoir si ils contiennent des .jpg. Si oui on affiche le dossier dans (pas les fichiers qu'il contient) dans la liste.
Cette liste de dossier est en fait un sommaire donnant accés à l'album qui affichera les photos contenues dans le dossier correspondant.
Je ne sais pas si je me fait bien comprendre.
Donc enfait il faudrait que ce soit:
if(count(glob($rep.$dossier.$photo."*.jpg")) !== 0 )
ou
if (substr( $photo, -3, 3) == "jpg" )
Et tout le problème est que je ne sais pas comment obtenir $photo.;-((((((
Merci
Mais je crois que vous "oublié" un détail (désolé:-))
Mon arborescence est la suivante:
albums/dossier1/texte.txt
albums/dossier1/photo1.jpg
albums/dossier1/photo2.jpg
albums/dossier1/photo3.jpg
albums/dossier2/texte.txt
albums/dossier3/texte.txt
albums/dossier3/photo1.jpg
albums/dossier3/photo2.jpg
albums/dossier3/photo3.jpg
et la liste que je veux obtenir c'est:
dossier1
dossier3
sans dossier 2, puisque celui-ci ne contient pas de photos.
Je pense que vos deux solutions
if(count(glob($rep.$dossier."*.jpg")) !== 0 )
ou
if (substr( $dossier, -3, 3) == "jpg" )
peuvent fonctionner à condition d'arriver à lire le contenu des sous-repertoires dossier1, dossier2, dossier3 pour savoir si ils contiennent des .jpg. Si oui on affiche le dossier dans (pas les fichiers qu'il contient) dans la liste.
Cette liste de dossier est en fait un sommaire donnant accés à l'album qui affichera les photos contenues dans le dossier correspondant.
Je ne sais pas si je me fait bien comprendre.
Donc enfait il faudrait que ce soit:
if(count(glob($rep.$dossier.$photo."*.jpg")) !== 0 )
ou
if (substr( $photo, -3, 3) == "jpg" )
Et tout le problème est que je ne sais pas comment obtenir $photo.;-((((((
Merci
rescue
Messages postés
1039
Date d'inscription
vendredi 16 novembre 2007
Statut
Contributeur
Dernière intervention
27 mars 2019
136
3 juin 2011 à 21:10
3 juin 2011 à 21:10
Bonsoir,
Je me suis amusé à créer une petite fonction qui va permettre de réaliser ce que tu souhaites faire, à toi de l'améliorer.
<?php
function parcourir_repertoire($repertoire)
{
$le_repertoire = opendir($repertoire) ;
while($fichier = @readdir($le_repertoire))
{
if ($fichier == "." || $fichier == "..") continue;
if (is_dir($repertoire.'/'.$fichier)) {
parcourir_repertoire($repertoire.'/'.$fichier);
}
else {
if (substr( $fichier, -3, 3) == "jpg") {
echo $repertoire.'/'.$fichier."<br />";
}
}
}
closedir($le_repertoire);
}
parcourir_repertoire('albums');
?>
J'espère que ça va t'avancer un peu.
@+
Je me suis amusé à créer une petite fonction qui va permettre de réaliser ce que tu souhaites faire, à toi de l'améliorer.
<?php
function parcourir_repertoire($repertoire)
{
$le_repertoire = opendir($repertoire) ;
while($fichier = @readdir($le_repertoire))
{
if ($fichier == "." || $fichier == "..") continue;
if (is_dir($repertoire.'/'.$fichier)) {
parcourir_repertoire($repertoire.'/'.$fichier);
}
else {
if (substr( $fichier, -3, 3) == "jpg") {
echo $repertoire.'/'.$fichier."<br />";
}
}
}
closedir($le_repertoire);
}
parcourir_repertoire('albums');
?>
J'espère que ça va t'avancer un peu.
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci rescue, grace à ton code j'ai pu faire un truc qui approche ce que je veux faire. Voicile code que j'ai bidouillé à partir du tien:
<?php
$rep = "albums/";
$dir = opendir($rep);
while ($dossier = readdir($dir)) {
if ($dossier != '.' && $dossier != '..' && $dossier[0]=='A'){
if(is_dir($rep.$dossier)) {
$sousdir = opendir($rep.$dossier);
while ($fiche = readdir($sousdir)) {
if (substr($fiche,-3) == "jpg") {
echo $dossier."<br>";
}}}}}
closedir($dir);
?>
Le seul problème qu'il me reste, c'est qu'il m'affiche autant de fois le nom du répertoire ($dossier) qu'il y a de fichiers .jpg ($fiche) dans celui-ci.
N'y a-t-il pas une fonction identique à GROUP BY en Mysql pour que le nom ne s'affiche qu'une seul fois?
J'ai pas mal cherché sur internet sans rien trouver.;-(((
bon, je ne suis pas très doué en php.........
Merci d'avance et bon dimanche à tous
Merci rescue, grace à ton code j'ai pu faire un truc qui approche ce que je veux faire. Voicile code que j'ai bidouillé à partir du tien:
<?php
$rep = "albums/";
$dir = opendir($rep);
while ($dossier = readdir($dir)) {
if ($dossier != '.' && $dossier != '..' && $dossier[0]=='A'){
if(is_dir($rep.$dossier)) {
$sousdir = opendir($rep.$dossier);
while ($fiche = readdir($sousdir)) {
if (substr($fiche,-3) == "jpg") {
echo $dossier."<br>";
}}}}}
closedir($dir);
?>
Le seul problème qu'il me reste, c'est qu'il m'affiche autant de fois le nom du répertoire ($dossier) qu'il y a de fichiers .jpg ($fiche) dans celui-ci.
N'y a-t-il pas une fonction identique à GROUP BY en Mysql pour que le nom ne s'affiche qu'une seul fois?
J'ai pas mal cherché sur internet sans rien trouver.;-(((
bon, je ne suis pas très doué en php.........
Merci d'avance et bon dimanche à tous
rescue
Messages postés
1039
Date d'inscription
vendredi 16 novembre 2007
Statut
Contributeur
Dernière intervention
27 mars 2019
136
4 juin 2011 à 20:20
4 juin 2011 à 20:20
Bonsoir,
Cela doit être possible, mais pour le moment je n'ai aucune d'idée.
Il va falloir réfléchir plus consciencieusement.
A moins qu'une autre personne de la communauté trouve la solution.
@+
Cela doit être possible, mais pour le moment je n'ai aucune d'idée.
Il va falloir réfléchir plus consciencieusement.
A moins qu'une autre personne de la communauté trouve la solution.
@+
2 juin 2011 à 21:16
J'ai essayé toutes les variantes possible, mais soit tout les répertoires s'affichent, soit aucun.
Je voudrais que s'affichent uniquement les répertoires contenant des fichiers .jpg.
voici ce que j'ai essayé:
<?php
$rep = "albums/";
$dir = opendir($rep);
while ($dossier = readdir($dir)) {
if(is_dir($rep.$dossier)) {
if ($dossier != '.' && $dossier != '..' && $dossier{0}=='A'){
if(count(glob($rep.$dossier."*.jpg")) !== 0 )
echo $dossier."<br>";
}}} }
closedir($dir);
?>
ou encore
<?php
$rep = "albums/";
$dir = opendir($rep);
while ($dossier = readdir($dir)) {
if(is_dir($rep.$dossier)) {
if(count(glob($rep.$dossier."*.jpg")) !== 0 )
if ($dossier != '.' && $dossier != '..' && $dossier{0}=='A'){
echo $dossier."<br>";
}}} }
closedir($dir);
?>
Rien ne fonctionne....
Merci pour ton aide.