Si un appel à unlink() renvoie false pour le chemin spécifié, comment pouvez-vous trouver la raison de l'échec (par exemple, EISDIR, ENOENT, ELOOP, etc.)? PHP 5.x s'exécutant sur Linux Redhat.Comment obtenir le résultat d'erreur de unlink
Répondre
est ici une façon
unlink("/path/that/does/not/exist");
print_r(error_get_last());
Voir Error handling pour plus de détails
Je voulais traiter l'erreur par programme, mais pour l'instant je vais juste les connecter en utilisant cette suggestion; - if (@unlink ('xyz.abc') === false) {$ e = error_get_last () trigger_error ($ e ['message'], E_USER_NOTICE); } –
Je ne pense pas qu'il soit possible de récupérer le (s) code (s) d'erreur émis par le système. C'est peut-être dû au fait que PHP est supposé être portable, et que différents OS ont des méthodes différentes pour signaler les erreurs.
Vous pouvez bien sûr faire un exec('rm ....')
et obtenir le niveau d'erreur mais ce n'est pas très portable, et rend votre application dépend des droits exec()
.
Sinon, si vous avez vraiment, vraiment besoin de cela, seulement une solution de contournement très hacky vient à l'esprit: Créer un custom error handler function qui tente d'aller chercher la raison de l'échec de l'avertissement unlink
jette - par exemple. vérifiez "Permission denied", ou récupérez tout le message d'erreur.
Créez une fonction wrapper autour de unlink
qui définit et redéfinit le gestionnaire d'erreurs. Quelque chose comme ceci:
function my_unlink($file)
{
set_error_handler("my_error_handler");
unlink($file);
restore_error_handler();
}
vous obtenez ma dérive.
Si quelqu'un connaît une meilleure solution - Je serais intéressé d'entendre parler aussi ....
Cette n'est pas possible, j'en ai peur. Voici le code C qui gère unlink dans php 5.3. Comme vous pouvez le voir, errno n'est pas retourné et il n'y a aucun moyen d'y accéder plus tard.
Il existe déjà un bugreport à ce sujet, mais il ne semble pas attirer trop l'attention. ;)
Voir aussi ce discussion
- 1. comment obtenir le résultat d'une sous-activité
- 2. Comment obtenir le résultat d'une case cochée?
- 3. Compte SQLite (*) comment obtenir le résultat?
- 4. Android HttpPost: comment obtenir le résultat
- 5. problème avec unlink() en php!
- 6. obtenir le résultat complet de « ps »
- 7. Comment faire pour obtenir le résultat de dialogue de WebBrowser.ShowPageSetupDialog
- 8. SemWeb - Comment obtenir le résultat de ma requête en XML?
- 9. Comment obtenir le résultat de sp_executesql dans une variable?
- 10. Comment obtenir le résultat de jQuery PageMethods fonction
- 11. Problème Android Actvities pour obtenir le résultat
- 12. Comment obtenir le résultat en utilisant seulement 1 requête?
- 13. Comment obtenir le même résultat sans utiliser enumerate?
- 14. Comment obtenir le premier élément du résultat LinqToEntities?
- 15. comment obtenir le top dix résultat en sql?
- 16. Comment obtenir le résultat d'une colonne avec des données combinées?
- 17. Comment obtenir un résultat trié dans iBatis?
- 18. Comment obtenir un résultat unique dans MySQL
- 19. Obtenir le résultat d'un processus Livecycle de longue durée
- 20. obtenir le résultat de mysql et compte domaine spécifique
- 21. Obtenir le bon résultat de clic de souris événement
- 22. obtenir le résultat le plus proche dans IFNULL
- 23. Mélange de deux vecteurs couleur RVB pour obtenir le résultat
- 24. beautifulsoup et mécaniser pour obtenir le résultat de l'appel ajax
- 25. obtenir le résultat de mysql orderd par clause IN
- 26. Comment obtenir la vue formatée de YQL comme résultat?
- 27. Comment obtenir un résultat de colonne dans une rangée
- 28. Boucler un exécutable pour obtenir le résultat du script Python
- 29. obtenir tableau de lignes avec résultat mysqli
- 30. Comment obtenir le nombre le plus élevé dans un résultat de requête Linq retourné?
Bienvenue sur SO. Bonne question! –