Fonction UNLINK

Fermé
Cathy - 18 janv. 2011 à 22:24
willfonkam Messages postés 1 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 27 mai 2011 - 27 mai 2011 à 08:17
Bonjour,

Je vais vous demander de l'aide car je tourne en rond et je ne m'en sors pas ...
Je vous explique :
Je crée une image de vérification lors d'une inscription sur mon site... Jusque là, tout va bien :)
Je désire ensuite dans mon programme admin, pouvoir par exemple tous les soirs, aller supprimer toutes ces images créés de la journée...
Je fais donc dans mon programme admin :

...
$mask = "site_pin_*.jpg";
unlink("../upl/" . $mask);
...

Obligée (??) de stoker mon image dans une variable $mask car chaque image portera un nom complet différent
c'est à dire elles vont toutes commencer par "site_pin_" et après ce sera aléatoire
J'aurai donc dans mon répertoire "upl" des fichiers images mélangés :
site_pin_128g4dsqffs9.jpg
site_pin_4jtym670487.jpg
image_55gh.jpg
site_pin_4ghy4gh7681.jpg
image_se96.gif
etc...

Bref...

Quand je lance mon prog admin je me retrouve avec un magnifique :

Warning: unlink(../upl/site_pin_*.jpg) [function.unlink]: No such file or directory in /var/www/vhosts/site.com/httpdocs/admin/general_settings.php on line 45

Ca c'est la dernière erreur rencontrée... je vous passe les lignes de prog ou l'affichage d'erreur était différent :(

Mais j'ai tout le temps un erreur et je ne sais pas comment y remédier...

Help !!

Merci d'avance !


A voir également:

4 réponses

duweb Messages postés 352 Date d'inscription dimanche 30 mai 2010 Statut Membre Dernière intervention 6 mars 2014 72
18 janv. 2011 à 23:14
$mask = "site_pin_*.jpg";

le php ce n'est pas windows :-)

il faut utiliser des expressions rationnelles
https://www.php.net/manual/fr/function.preg-match.php

je te laisse lire la doc et eassyer avant de donner une solution. ca fait toujours plaisir de comprendre par soi-même :-)

mais est-ce que ce ne serait pas plus simple de supprimer l'images après la vérification , puisqu'on connaît son nom à ce moment là ?
0
Merci duweb je sais que le PHP ce n'est ni windows ni du dos lol
mais j'avais vu cette variable dans un autre post ici même (le sujet étant "caractère jocker en php")

Tu as raison effectivement, ce serait le top de supprimer l'image de suite sauf que cela marche trop bien et l'image de vérification de s'affiche plus du coup lol
je fais ça :

function show_pin_image ($full_pin, $generated_pin, $image_url = '')
{
## création image et pas texte pour pin
$font = 6;
$width = ImageFontWidth($font) * strlen($generated_pin);
$height = ImageFontHeight($font);

$im = @imagecreate ($width,$height);
$background_color = imagecolorallocate ($im, 219, 239, 249); //cell background
$text_color = imagecolorallocate ($im, 0, 0,0);//text color
imagestring ($im, $font, 0, 0, $generated_pin, $text_color);
touch($image_url . 'uplimg/site_pin_' . $full_pin . '.jpg');
imagejpeg($im, $image_url . 'uplimg/site_pin_' . $full_pin . '.jpg');

$image_output = '<img src="' . $image_url . 'uplimg/site_pin_' . $full_pin . '.jpg">';

imagedestroy($im);
-----------------------------------------------------------
return $image_output;
}

à la place des ------------------------------------- j'avais mis :
unlink($path.'uplimg/site_pin_'.$full_pin.'.jpg');
et ça marche très bien...
mais du coup l'image ne s'affiche plus...

d'où le fait de vouloir les supprimer "en fin de journée" globalement par une commande dans l'admin...

et je rame... lol
0
je viens de suivre le lien que tu me conseilles...
je ne suis pas blonde mais je ne suis pas une pro et je t'avoue sincèrement que je ne comprends pas grand chose lol
j'avais déjà jeté un oeil concernant les REGEX mais je me suis retrouvé avec un mal de crâne encore plus intense qu'avec mon erreur de code lol
0
willfonkam Messages postés 1 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 27 mai 2011
Modifié par willfonkam le 27/05/2011 à 14:25
Tu devrais d'abord lister les fichiers du répertoire où se trouvent les fichiers à supprimer avec la fonction readdir(), puis en utilisant une regex, tu peux sélectionner les images qui commencent par "site_pin_" et enfin tu utilises unlink() pour les supprimer. PHP ne pourra pas reconnaitre le caractère spécial "*". Pas de la façon dont tu l'as utilisé en tout cas.
Courage
0