Rechercher : dans
Par :

Problême php fonction unlink

Dernière réponse le 5 jun 2008 à 08:37:01 Azraka, le 4 jun 2008 à 15:09:42 
 Signaler ce message aux modérateurs

Bonjour,

J'ai actuellement un soucis avec la fonction unlink(). J'aimerai supprimer un fichier contenu dans un dossier mais j'obtient à chaque fois un message d'erreur.

Voici mon morceau de code :

$ouverture= opendir('../dossier1/dossier2');
unlink('test.jpg');
closedir($ouverture);

et voilà l'erreur :

Warning: unlink(test.jpg) [function.unlink]: No such file or directory in C:\wamp\www\site\gestion\gestion_photos.php on line 78
(gestion_photos.php étant le fichier où se trouve le code ci-dessus)

Je ne sais plus ou chercher.. Merci d'avance.

Meilleures réponses pour « Problême php fonction unlink » dans :
[PHP] Fonction mail() Voir La fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez...
Quelques fonctions utiles VoirCette astuce vous montrera comment utiliser quelques fonctions très utiles en PHP: Retourne la longueur de la chaîne Utilisation Résultat Passe tous les caractères en minuscules. Utilisation Résultat Passe tous les caractères en...
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
PHP - Mail et fonctions réseau VoirPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...

1

macgawel, le 4 jun 2008 à 15:37:33

Bonjour.

Le problème est relativement simple :

// 1. On crée un pointeur vers le répertoire '../dossier1/dossier2' MAIS ON NE CHANGE PAS DE REPERTOIRE
$ouverture= opendir('../dossier1/dossier2');
// 2. On demande la suppression du fichier test.jpg DANS LE REPERTOIRE COURANT 
unlink('test.jpg');
// 3. On supprime le pointeur
closedir($ouverture);

Répondre à macgawel

2

Azraka, le 4 jun 2008 à 15:42:48

Merci de ta réponse, mais il me semble que j'ai bien fait ce que tu expliques..

Pourrais-tu préciser le "MAIS ON NE CHANGE PAS DE REPERTOIRE", et le "DANS LE REPERTOIRE COURANT" ?
Je crois bien que c'est là la source du problème mais je ne comprend pas pourquoi.

Répondre à Azraka

3

macgawel, le 4 jun 2008 à 16:02:31

Je n'explique rien, j'ai juste commenté ton code pour te montrer où ça cloche.

Tu as bien cerné la source du problème :
Le script est dans C:\wamp\www\site\gestion\ et tu veux supprimer C:\wamp\www\site\dossier1\dossier2\test.jpg.

Avec ta méthode :
0. Tu (enfin, plutôt PHP) es dans le répertoire C:\wamp\www\site\gestion\
1. Tu définis une varaible $ouverture qui pointe vers C:\wamp\www\site\dossier1\dossier2\
2.Tu demandes la suppression du fichier C:\wamp\www\site\gestion\test.jpg (vu que tu n'as pas bougé !)
Comme il n'existe pas, PHP te renvoie une erreur.

Ce que tu peux faire, c'est bêtement unlink ('../dossier1/dossier2/test.jpg'); sans faire de opendir...

Répondre à macgawel

4

Azraka, le 4 jun 2008 à 16:11:15

..j'ai essayé, il me sort alors :

Warning: unlink(../dossier1/dossier2/test.jpg) [function.unlink]: No such file or directory in C:\wamp\www\site\gestion\gestion_photos.php on line 78

Sais-tu comment je peux "bouger" dans le répertoire où se trouve mon fichier à effacer ?

Répondre à Azraka

5

macgawel, le 4 jun 2008 à 16:34:19

Warning: unlink(../dossier1/dossier2/test.jpg) [function.unlink]: No such file or directory in C:\wamp\www\site\gestion\gestion_photos.php on line 78

Ca, ça veut dire qu'il ne trouve pas ton fichier test.jpg

Il est sensé être dans quel répertoire ?

Tu peux faire un test avant :
$fichier = '../dossier1/dossier2/test.jpg';
if ( is_file ($fichier) ) {
   unlink ( $fichier) ;
}

ou utiliser $_SERVER["PATH_TRANSLATED"], qui te donne le répertoire courant (faire un echo $_SERVER["PATH_TRANSLATED"] t'aiderait peut-être à deboguer...)

Répondre à macgawel

6

Azraka, le 4 jun 2008 à 16:51:37

Voici où se trouve le code : C:\wamp\www\site\gestion\gestion_photos.php
et voilà où se trouve le fichier, il y est c'est sûr : C:\wamp\www\site\gallerie\thermique\test.jpg

(cette fois j'ai mis les vrais noms ^^)

Quant au "echo $_SERVER["PATH_TRANSLATED"];" cela ne m'affiche rien..

(je ne sais plus si je l'ai précisé mais avec le chemin absolu cela ne marche pas non plus..)

Répondre à Azraka

7

Azraka, le 5 jun 2008 à 08:09:49

Personne n'a d'idée ?

Merci d'avance.

Répondre à Azraka

8

 Azraka, le 5 jun 2008 à 08:37:01

Au lieu d'attendre bêtement une réponse j'ai continué à chercher (cela paraît évident mais pas pour tout le monde ^^) et après différents essais j'ai enfin trouvé la solution à mon problème. Je la partage donc au cas où quelqu'un rencontrerait le même problème :

$ouverture= opendir("../dossier2/dossier2");
unlink("../dossier2/dossier2/test.jpg");
closedir($ouverture);

Bonne journée à tous.

Répondre à Azraka