5 votes

Comment puis-je détecter si php rename() a été exécuté avec succès ?

La documentation de php indique que le résultat suivant sera obtenu true en cas de succès ou false en cas d'échec.

rename('test/test1/','test/test2/test1/');

Comment obtenir le vrai ou le faux ? Si j'exécute la fonction exacte et qu'elle réussit, le dossier est déplacé comme prévu et il n'y a pas de résultat. En cas d'échec, un message d'erreur s'affiche.

Comment vérifier si true o false pour que je puisse savoir si la fonction de renommage a réussi, sans le message d'erreur ?

Est-ce la bonne méthode ?

error_reporting(0);
if(rename('test/test1/','test/test1/test2/test1/')===true){
   print 'true';
} else{
   print 'false';
}

8voto

Brian Driscoll Points 10188

Il suffit d'effectuer cette opération pour obtenir la valeur de retour :

$success = rename($oldValue, $newValue);

Vous pouvez alors faire ce que vous voulez avec la valeur de $success .

6voto

Jon Points 194296

La vérification de la valeur de retour est un problème simple, qui se fait comme vous le suggérez (ou peut-être que vous pouvez enregistrer la valeur de retour dans une variable, si c'est pratique).

Toutefois, il serait préférable de ne pas modifier le niveau d'erreur global et d'utiliser l'option opérateur de contrôle des erreurs @ au lieu de cela :

if(@rename('test/test1/','test/test1/test2/test1/')===true) { 
    // successfuly rename
}
else {
    // failed
} 

Dans un scénario avancé, vous pourriez également vouloir comprendre quelle était la condition d'erreur s'il est possible de prendre des mesures pour la corriger. Pour ce faire, vous aurez besoin du message d'erreur de l'avertissement que vous avez reçu. rename produirait. Vous pouvez utiliser une technique similaire à celle que j'ai décrite aquí pour y parvenir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X