Page 1 sur 1

comment supprimer . et .. à l'affichage

Posté : 27 juin 2023, 22:30
par elevedavid
Bonjour
j'ai fait un script pour déplacer des photos d'un dossier vrac vers des dossiers en fonction des noms des images.
Ce script fonction !! :D

Mais lorsque je veux afficher la liste des dossiers avec ce que contient chaque dossier, dans le contenu de chaque dossier j'ai
.
..
je voudrai les supprimer mais je n'y arrive pas, alors après plusieurs heures de combat avec le code je viens chercher de l'aide pour comprendre mon erreur.
<?php

class Image
{   //retourne les fichiers présent dans le répertoire $image_dir
    public function getImages($image_dir)
    {   //ouverture du répertoire
        if($handle = opendir($image_dir))
        {   //création d'un tableau vide $images pour récupérer les fichiers
            $images = [];
            //pour chaque entrée dans le répertoire
            while(false !== ($entry = readdir($handle)))
            {   //vérification qu'il s'agit d'un fichier
                if(($entry != '.') and ($entry != '..') and ($entry != '.DS_Store'))
                {    //ajout du nom du fichier au tableau $images
                    $images[] = $entry;             
                }
            }
        }
     //fermeture du répertoire
    closedir($handle);
    //retour tableau des fichiers du répertoire $directory
    return $images;
    }
}

//chemin des différents dossiers et sous dossiers
$image_dir = '/code/rangement/vrac/';


//instantiation class Image
$image = new Image();
//récupération tableau des noms de fichier présents dans le répertoire
$images = $image->getImages($image_dir);

//boucle de récuperation des noms des images du tableau $images
foreach($images as $key => $name)
{   //fractionnement du nom de chaque nom de fichier pour récupérer avions ou montagne_2009
    $explode = explode('-',$name);  
        $array[] = $explode[0]; 
        //vérification si $explode[0] n'est pas un dossier
        if(!is_dir($explode[0]))
        {   //création du dossier $explode[0]
            mkdir($explode[0]);
            //création du chemin de ss_dossier
            $ss_dossier ='/code/rangement/' .$explode[0]. '/';
            //renome le nom de l'image du dossier vrac en la déplaçant dans le ss_dossier (dans notre cas pas de modification du nom)
            rename($image_dir.$name,$ss_dossier.$name);
        }
        else
        {   //création du chemin de ss_dossier
            $ss_dossier ='/code/rangement/' .$explode[0]. '/';
            //renome le nom de l'image du dossier vrac en la déplaçant dans le ss_dossier (dans notre cas pas de modification du nom)
            rename($image_dir.$name,$ss_dossier.$name);
        }
    
}   

?>

<!DOCTYPE html>
<html>
    
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title>Rangement d'images</title>        
    </head>
    <body>
        
<h1> Rangement d'images </h1>

<?php


$scandir = scandir('/code/rangement/');

foreach($scandir as $fichier){    
    if(is_dir($fichier) and $fichier != '.' and $fichier != '..'){
        echo "$fichier<br/>"; 
        $fichiers = scandir('/code/rangement/' .$fichier. '/');
        foreach($fichiers as $name_photo){
            if(is_dir($name_photo) and $name_photo != '.' and $name_photo != '..'){ 
            }    echo '<li>' .$name_photo. '</li>';
            
        }               
    }  
}   

?>
   
</body>
</html>

Re: comment supprimer . et .. à l'affichage

Posté : 27 juin 2023, 22:43
par elevedavid
youpi j'ai trouvé comme quoi, il faut persévérer !!
ma fin de code est faut voici la version corrigé de la fin du code
sur les deux dernière ligne de code
foreach($scandir as $fichier){    
    if(is_dir($fichier) and $fichier != '.' and $fichier != '..'){
        echo "$fichier<br/>"; 
        $fichiers = scandir('/code/rangement/' .$fichier. '/');
        foreach($fichiers as $name_photo){
           if(!is_dir($name_photo) and $name_photo != '.' and $name_photo != '..'){ 
            echo '<li>' .$name_photo. '</li>';
          }   
            
        }               
    }  
}   

Re: comment supprimer . et .. à l'affichage

Posté : 27 juin 2023, 22:49
par two3d
Penses à ajouter une ouverture et fermeture de liste avec <ul> et </ul> pour ton dernier code. Ceci pour un HTML correct.

Passe en résolu si ta trouvé une solution ;)