Incompréhension php effacement contenuDossier
Résolu
necro27
Messages postés
160
Date d'inscription
Statut
Membre
Dernière intervention
-
necro27 Messages postés 160 Date d'inscription Statut Membre Dernière intervention -
necro27 Messages postés 160 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Bon pour une fois je ne poste pas pour avoir une réponse mais pour avoir une explication sur un morceau de code que je n'arrive pas à comprendre.. Tout fonctionne, aucun souci de ce coté la..
Voici le code j'explique après :
Avec les 'echo' j'ai le résultat suivant :
Bon maintenant explications :
Je développe un site internet où l'administrateur doit pouvoir ajouter des photos sur les pages de ce site, sans toucher au code.
J'ai donc un dossier provisoire dans lequel j'importe des photos récupérées à l'aide d'un input de type file.
Ce dossier provisoire, contient pour mes tests 3 photos, image1, 2 & 3.
Ensuite de ce dossier provisoire, j'aimerai, si confirmation, déplacer l'image du dossier provisoire dans un autre dossier, qui sera celui au final qui contiendra les images du site. Une fois la copie effectuée, j'efface donc le contenu du dossier provisoire.
Plus clair :
j'ai 2 dossiers
--> "photos"
--> "photosverif" (--> dossier provisoire)
Mon souci d'incompréhension est donc le suivant..(j'ai mis la ligne en gras sur le premier code.)
pourquoi tester sur des points...J'ai beau chercher sur le net je ne trouve rien de précis, clair ou je ne sais quoi d'autre encore. Si quelqu'un pouvait prendre le temps pour m'expliquer, cela serait vraiment très sympa car j'aime comprendre les codes que j'utilise.
Et de plus je pense que pour les modifications que je veux y apporter, cela me semble utile (transfert d'un fichier d'un dossier à l'autre).
ps : j'ai trouvé ce morceau de code sur un forum, dont je n'ai pas l'adresse sous la main.
Voilà, merci beaucoup d'avance.
Necro27
Bon pour une fois je ne poste pas pour avoir une réponse mais pour avoir une explication sur un morceau de code que je n'arrive pas à comprendre.. Tout fonctionne, aucun souci de ce coté la..
Voici le code j'explique après :
$handle=opendir('photosverif/'); while ($fichier = readdir($handle)) { echo $handle.'//1//'; if ($fichier != "." && $fichier != "..") { echo $handle.'//2//'; $supfichier="photosverif/$fichier"; echo $supfichier; unlink($supfichier); echo $handle.'//3//'; } } closedir($handle);
Avec les 'echo' j'ai le résultat suivant :
Resource id #6 //1// Resource id #6 //1// Resource id #6 //1// Resource id #6 //2// photosverif/image1.jpg Resource id #6 //3// Resource id #6 //1// Resource id #6 //2// photosverif/image2.jpg Resource id #6 //3// Resource id #6 //1// Resource id #6 //2// photosverif/Thumbs.db Resource id #6 //3// Resource id #6 //1// Resource id #6 //2// photosverif/image3.jpg Resource id #6 //3//
Bon maintenant explications :
Je développe un site internet où l'administrateur doit pouvoir ajouter des photos sur les pages de ce site, sans toucher au code.
J'ai donc un dossier provisoire dans lequel j'importe des photos récupérées à l'aide d'un input de type file.
Ce dossier provisoire, contient pour mes tests 3 photos, image1, 2 & 3.
Ensuite de ce dossier provisoire, j'aimerai, si confirmation, déplacer l'image du dossier provisoire dans un autre dossier, qui sera celui au final qui contiendra les images du site. Une fois la copie effectuée, j'efface donc le contenu du dossier provisoire.
Plus clair :
j'ai 2 dossiers
--> "photos"
--> "photosverif" (--> dossier provisoire)
Mon souci d'incompréhension est donc le suivant..(j'ai mis la ligne en gras sur le premier code.)
if ($fichier != "." && $fichier != "..")
pourquoi tester sur des points...J'ai beau chercher sur le net je ne trouve rien de précis, clair ou je ne sais quoi d'autre encore. Si quelqu'un pouvait prendre le temps pour m'expliquer, cela serait vraiment très sympa car j'aime comprendre les codes que j'utilise.
Et de plus je pense que pour les modifications que je veux y apporter, cela me semble utile (transfert d'un fichier d'un dossier à l'autre).
ps : j'ai trouvé ce morceau de code sur un forum, dont je n'ai pas l'adresse sous la main.
Voilà, merci beaucoup d'avance.
Necro27
A voir également:
- Incompréhension php effacement contenuDossier
- Effacement blanco - Télécharger - Divers Utilitaires
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
Donc en fait je n'ai en aucun cas besoin de modifier cette ligne ?
Par exemple, en aucun cas je n'aurais besoin de faire
Hummm non ok je crois que j'ai compris, un "." signifie donc toujours répertoire courant et ".." repertoire parent ? Mais comment cette valeur arrive t'elle ?
Je veux dire, comment $fichier fait il pour prendre la valeur "." ? c'est donc sur chaque passage d'un répertoire courant ? quand je dit que je ne comprend pas je ne fais pas semblant....mdr
Et en termes de souci de lisibilité comme tu dis, c'est la compréhension du serveur ? ou pour nous ? (chose que je doute, mais je demande quand même :-s )
En fait, c'est juste que le scan des fichiers de ton arborescence va aussi prendre en compte le fichier "." et le fichier ".." . Disons que l'ordi navigue comme ca entre ces répertoires et que ton scan, scan tout et vraiment toute l'arborescence ^^.
Arrete toi à "..", je ne crois pas que "..." existe ^^. Ptet une notion de grand parent ? :D
Il s'agit d'une convention.
Tout dossier, même vide, contient les répertoires "." et "..", qui, donc, pointent vers "lui-même" et vers "le dossier parent".
Donc, fatalement, quand tu fais while ($fichier = readdir($handle)) tu vas finir par tomber dessus.
Xavier
Petit clin d'oeil a fxtaa pour la notion de grand parent, ça m'a bien fait rire.
Sinon d'accord je comprend mieux en effet, donc en aucun cas je n'ai à y toucher.
ça fait plaisir d'avoir des personnes comme vous, encore merci et bonne soirée à vous.
Necro27