problème unlink

Eléphant du PHP | 180 Messages

11 mars 2007, 16:31

bonjour,

je traite plusieurs fichiers dans le même dossier et à chaque fin de traitement le fichier est effacé et passe au suivant. Or lorsque le script en est au dernier le unlink tombe en "Warning: unlink(C:/wamp/www/Arcserve/log/xxxx) [function.unlink]: Permission denied in C:\wamp\www\Arcserve\ori.php ".

le code est

Code : Tout sélectionner

$files = glob($Arcservetest); foreach ($files as $filename) { if(file_exists($filename)==true) { if($filename !== "." && $filename != "..") { $Log = file($filename); //Pas de timeout; set_time_limit (0); //ouverture BD $sqldb = new PDO("mysql:host=localhost;dbname=test","root","") or die ("impossible d'ouvrir bdd !"); $query = "insert into journal (JDate,JHeure,JInfo,JAction) values (:JDate,:JHeure,:JInfo,:JAction)"; $stmt = $sqldb->prepare($query); foreach ($Log as $ligne) { $JDate =substr($ligne,0,4).'-'.substr($ligne,4,2).'-'.substr($ligne,6,2); $Datebis = substr($ligne,0,4).substr($ligne,4,2).substr($ligne,6,2); $JHeure = substr($ligne,9,6); $i = substr($ligne,18,4); $JAction = substr($ligne,23,$ligne-1); /******Pour 7 jours de rétension******* $Format = 'Ymd'; $Datesys = (int)date($Format); $Diff = $Datesys-$Datebis; **************************************/ if($i<>'PE ' and $i<>' ') { $stmt->bindParam(':JDate',$JDate); $stmt->bindParam(':JHeure',$JHeure); $stmt->bindParam(':JInfo',$i); $stmt->bindParam(':JAction',$JAction); $stmt->execute(); } } } $erase = unlink($filename); }
merci d'avance si astuce

Mammouth du PHP | 991 Messages

11 mars 2007, 16:39

regarde peut etre du coté des chmod
DevOps, Symfony4, Hoa

Eléphant du PHP | 180 Messages

11 mars 2007, 16:46

je suis sur windows

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 mars 2007, 17:20

Pas évident de voir ou commence et ou se termine quoi avec une telle indentation, mais déjà il me semble que tu fais le unlink() même si le fichier n'existe pas ou s'il s'agit d'un dossier système... est ce que ca ne jouerais pas ?
c'est bien le bon nom de fichier qu'il essaye de supprimer ? est ce qu'il est bien présent dans ton dossier au début du traitement ? est-ce qu'il y ait encore à la fin ? est-ce qu'il n'y a pas un autre processus qui y accède, etc..
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 180 Messages

11 mars 2007, 17:53

c'est bien le bon fichier en entrée il est toujours la en sortie si par exemple il y a un nombre n de fichier et le dernier reste toujours dans le dossier . J'ai l'impression que apache le vérouille .

Eléphant du PHP | 180 Messages

11 mars 2007, 22:30

il peut y avoir autant de fichier il n'arrive pas à effacer le dernier