8797 sujets

Développement web côté serveur, CMS

bonjour je débute en PHP
Je teste un petit script d'ecriture sur des images mais celui ci me crée des dossiers a la date du jour .
je voudrais donc supprimer les dossiers créés ainsi que les images.png qui s'y trouvent

j'ai vus que la commande unlink peut faire ça mais je cale .

j'ai sur mon serveur un dossier création qui contient :
fichier.php
img (qui est le repertoire qui contient les repertoires 05072009, 04082009 )
05072009 (qui est le repertoire a supprimer qui contient des images.png)
04082009 (qui est le repertoire a supprimer qui contient des images.png)

j'espere avoir été assez clair ,
d'avance merci
Pour cela il faut que tu utilise les fonctions scandir, afin d'avoir la liste des fichiers, unlink, pour supprimer les fichiers et ensuite rmdir, pour supprimer le dossier une fois vidé.
j'ai utilise ceci


Cela fonctionne mais comment modifier le $dossier = 'img/090709' car le 090709 qui est la date vas bouger tout les jours .
je débute et je me prends la tete avec ça





$dossier = 'img/090709' ;

$dossier = './' . $dossier ;
$dh = opendir( $dossier ) ;
while ( ( $file = readdir($dh) ) !== false )
{
$fi = str_replace( '.' , '' , $file ) ;

$delete = $dossier . '/' . $file ;

if( strlen( $fi ) > 0 )
{ echo ( '<LI>FICHIER : ' . $delete ) ;
if( unlink( $delete ) )
echo ( ' --- effacé' ) ;
else echo ( ' --- impossible' ) ;
}

}



Modifié par hitcher (10 Jul 2009 - 13:19)
Modérateur
Hello hitcher,

Pour ton petit soucis, je le verrai comme ceci :
(code fait de tête)

function effaceFichier($chemin){
    $contenu = array();
    

    $ressources = dir($chemin);
    while($lecture = $ressources->read()){
        if($lecture != "." && $lecture != ".."){
            $contenu[] = $lecture;
        }
    }
    $ressources->close();

    foreach($contenu as $v){
        if(unlink($chemin."/".$v))
                return true;
        else
                return false;
    }
}
function effaceRepertoire($chemin){
    $chemin = realpath($chemin); //protection
    if(effaceFichier($chemin) == true){
        rmdir($chemin);
    }else{
        die("Impossible de traiter cette action");
    }
}

$monChemin = "cheminVers/";
$repertoire = "monDossierCible";
$cheminFinal = $monChemin.$repertoire;

effaceRepertoire($cheminFinal);


Pour info et pour répondre à ta question au sujet du changement de nom du répertoire, il suffit de changer le nom de la variable $repertoire.

ex :

$monChemin = "img/";
$repertoire = "0102009";
$cheminFinal = $monChemin.$repertoire;

effaceRepertoire($cheminFinal);


Si tu as des questions, n'hésite pas. Smiley smile

Par ailleurs, peux tu STP, rééditer ton message afin de te conformer aux règles du forum. Je pense notamment à la règle 13.

Bonne soirée à toi.

ps : Ce soir, je testerai ce que j'ai écrit en rentrant.
Modifié par Nolem (10 Jul 2009 - 13:31)
ok deja merci d'avoir pris le temps de me repondre .

j'attends ta réponse car a cette heure je ne suis pas devant le pc
Modérateur
Hello,

Essaie le script, décortique le, et pose des questions ou va sur php.net ou sur ... pour comprendre ! Smiley cligne

++
Modifié par Nolem (10 Jul 2009 - 13:34)