unlink() qui ne fonctionne pas

unlink() qui ne fonctionne pas - PHP - Programmation

Marsh Posté le 05-04-2005 à 11:36:30    

Hello,
 
alors voilà j'ai un petit problème avec la fonction unlink() en php. Je voudrais m'en servir pour effacer un fichier dans un de mes dossiers mais j'ai beau tout essayer c'est comme si la fonction ne trouvait pas mon fichier pourtant il est bien là...Voilà mon code: (provisoire pour essayer de faire fonctionner unlink)

Code :
  1. $efface=unlink("/folio/images/blog/gracie.jpg" );
  2. if($efface) echo "fichier effacé";


 
et l'erreur qui sort c'est:
Warning: unlink(/folio/images/blog/gracie.jpg): No such file or directory in i:\portfolio\html\admin\blog\edit.php on line 12
 
Je comprends vraiment pas...Quand je vais sur http://localhost/folio/images/blog/gracie.jpg l'image s'affiche donc c'est que le chemin est bon. Je précise que j'ai tous les droits sur le fichier donc c'est pas ça le prob.  :heink:

Reply

Marsh Posté le 05-04-2005 à 11:36:30   

Reply

Marsh Posté le 05-04-2005 à 11:37:42    

Faut mettre le chemin au niveau du système de fichiers pas au niveau HTTP ;)

Reply

Marsh Posté le 05-04-2005 à 11:47:31    

Ahh...tu veux dire avec des \ à la place des / ? Mais je dois indiquer le chemin depuis quel point de mon arborescence :s

Reply

Marsh Posté le 05-04-2005 à 11:50:40    

Soit tu fais appel à un chemin absolu (commençant par /) dans ce cas c'est par rapport à la racine du serveur.
 
Soit tu fais appel à un chemin relatif par rapport à ton script PHP.

Reply

Marsh Posté le 05-04-2005 à 11:51:44    

\ => Windows
/ => Unix
 
Mais le parseur va faire la conversion tout seul.
 
Soit tu fais un unlink('C:\.......'); => absolu
soit un unlink('..\..\......'); => relatif
 
Les 2 marchent, perso je prefere le 2ème


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 05-04-2005 à 11:52:12    

Bah...commencant par / ou pas \ alors? Désolé j'ai un peu de mal à te suivre enfin pour le chemin relatif ou absolu c ok mais le sens des slash? Merci de ton aide ;)

Reply

Marsh Posté le 05-04-2005 à 11:52:50    

ok merci esox_ch jvais essayer :)

Reply

Marsh Posté le 05-04-2005 à 14:58:24    

yeahhh merci ca fonctionne maintenant par contre il faut que je génère le chemon dynamiquement et j'ai un problème de synthaxe...Vous pourriez encore me donner un ptit coup de main? C'est pour cette ligne:
$efface=unlink("..\..\images\blog\$affiche['image']" );
 
Merci :)

Reply

Marsh Posté le 05-04-2005 à 15:21:04    

smoggin a écrit :

yeahhh merci ca fonctionne maintenant par contre il faut que je génère le chemon dynamiquement et j'ai un problème de synthaxe...Vous pourriez encore me donner un ptit coup de main? C'est pour cette ligne:
$efface=unlink("..\..\images\blog\$affiche['image']" );
 
Merci :)


Code :
  1. $efface=unlink("..\..\images\blog\{$affiche['image']}" );


ou

Code :
  1. $efface=unlink('..\..\images\blog\'.$affiche['image']);


 
cf http://fr3.php.net/manual/en/language.types.string.php

Reply

Marsh Posté le 05-04-2005 à 15:58:03    

Cette méthode

Code :
  1. $efface=unlink("..\..\images\blog\{$affiche['image']}" );


me sort cette erreur:

Code :
  1. Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ...


 
et cette méthode

Code :
  1. $efface=unlink('..\..\images\blog\'.$affiche['image']);


celle là:

Code :
  1. Parse error: parse error, unexpected T_STRING in


 
 aaahhhhh :pt1cable: lol

Reply

Marsh Posté le 05-04-2005 à 15:58:03   

Reply

Marsh Posté le 05-04-2005 à 16:10:51    

Je deviens folle  :sweat:  
 
si je met ca:

Code :
  1. $fichier="..\..\images\blog\{$affiche['image']}";

ca me sort une erreur et si je mets ca:

Code :
  1. $fichier="..\..\images\blog\.{$affiche['image']}";

ca me sort le bon nom de fichier sauf avec un point entre trop grrr jcomprends paas  :heink:  

Reply

Marsh Posté le 05-04-2005 à 16:35:19    

Oups :D

Code :
  1. $efface=unlink("../../images/blog/{$affiche['image']}" );


ou

Code :
  1. $efface=unlink('../../images/blog/'.$affiche['image']);


Message édité par ratibus le 05-04-2005 à 16:36:24
Reply

Marsh Posté le 05-04-2005 à 16:47:02    

oooh coool ca marche mais ... tu peux m'expliquer pourquoi maintenant il faut mettre des / et plus des \ ?? C'est pourtant la même chose qu'avant quand je voulais simplement effacer un fichier...erf

Reply

Marsh Posté le 05-04-2005 à 16:52:09    

en fait ça marche aussi avec le \ mais c'est le caractère d'échappement donc faut faire attention ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed