Si una llamada a desvincular() devuelve false para la ruta especificada, ¿cómo encontrar cuál era el motivo del fallo (es decir EISDIR, ENOENT, ELOOP etc.)? PHP 5.x ejecutándose en redhat linux.Cómo obtener el resultado de errores de la desvinculación de
Respuesta
Ésta es una forma
unlink("/path/that/does/not/exist");
print_r(error_get_last());
Ver Error handling para más detalles
yo quería tratar con el error de programación, pero por ahora sólo voy a hacer un registro de uso de esta sugerencia; - si (@unlink ('xyz.abc') === false) {$ e = error_get_last (); trigger_error ($ e ['mensaje'], E_USER_NOTICE); } –
no creo que es posible recuperar ningún código (s) de error emitido por el sistema. Eso es quizá al hecho de que PHP se supone que es portátil y diferentes sistemas operativos tienen diferentes métodos de errores de información.
Por supuesto, puede hacer un exec('rm ....')
y recuperar el nivel de error, pero eso no es muy portátil, y hace que su aplicación dependa de los derechos exec()
.
De lo contrario, si realmente, realmente necesita esto, solo viene a la mente una solución muy hacky: Cree un custom error handler function que intente buscar el motivo del error unlink
throws - p. busca "Permiso denegado", o simplemente busca el mensaje de error completo.
crear una función de envoltura alrededor de unlink
que establece y re-establece el gestor de errores. Algo como esto:
function my_unlink($file)
{
set_error_handler("my_error_handler");
unlink($file);
restore_error_handler();
}
obtienes mi deriva.
Si alguien conoce una solución mejor - Me interesaría oír hablar de eso, también ....
Este no es posible, me temo Aquí está el código C que maneja desvincular en php 5.3.
ret = VCWD_UNLINK(url); <-- calls unlink(2)
if (ret == -1) {
if (options & REPORT_ERRORS) {
php_error_docref1(NULL TSRMLS_CC, url, E_WARNING, "%s", strerror(errno));
}
return 0;
}
como se puede ver, errno no se devuelve y no hay manera de acceder a él más tarde.
Ya hay un bugreport sobre esto, pero parece que no llamar demasiado la atención. ;)
Ver también este artículo discussion
- 1. Cómo obtener el resultado de un System.Diagnostics.Process?
- 2. PHP función de desvinculación
- 3. Desvinculación de eventos en Node.js
- 4. Dónde puedo obtener el resultado de System.Diagnostics.Trace.WriteLine
- 5. Android HttpPost: cómo obtener el resultado
- 6. ¿Cómo obtener el resultado de send-keys en tmux?
- 7. ¿Cómo obtener el resultado escalar de una declaración preparada?
- 8. jQuery Validator Desvinculación
- 9. Cómo filtrar el resultado de la línea de comando xcodebuild?
- 10. Obtener un resultado de matriz de json_decode
- 11. Desvinculación en jQuery
- 12. OpenX de actualización como resultado errores de plugin
- 13. Par Haskell y funciones de desvinculación
- 14. Android, servicio de desvinculación y problemaServicio desconectado
- 15. ¿Cómo analizo el resultado de msdeploy y fallo una compilación de TeamCity si hay errores?
- 16. GWT: ¿Cómo obtener un resultado de presentación de FormPanel
- 17. PHP ¿la función de desvinculación funciona con una ruta?
- 18. ¿Cuál es el equivalente del programa de desvinculación en Windows?
- 19. Cómo obtener todos los valores de un resultado de búsqueda
- 20. Cómo ejecutar el script de shell en R y obtener el resultado en la tabla?
- 21. Obtener el resultado del método async
- 22. Inicie la actividad desde preferences.xml y obtenga el resultado en el resultado de actividad
- 23. Cómo obtener errores de script de Perl en el registro de errores de nginx (Nginx con FCGIwrap)
- 24. ¿Cómo redondear el resultado de la división de enteros?
- 25. cómo localizar el resultado de la dirección de reverseGeocodeLocation?
- 26. Obtener un resultado de un enlace en el código
- 27. Hibernate: Cómo obtener resultado de consulta con múltiples clases
- 28. quería obtener todas las fechas en el resultado de mysql
- 29. Cómo obtener un resultado de variable desde pssession remoto
- 30. Hacer que la función "get" de AJAX sea sincrónica/¿cómo obtener el resultado?
Bienvenido a SO. ¡Buena pregunta! –