Domanda
RMDIR () mostra alcuni avvertimenti come la Dir non esiste o le autorizzazioni non lo consentono. Come posso catturare quale motivo di fallimento e reagire ad esso?
Soluzione
RMDIR non lancia un'eccezione, quindi non puoi prenderli con Try/Catch. Quello che puoi fare è usare error_get_last funzione per fare ciò di cui hai bisogno.
Prova qualcosa di simile:
if (!@rmdir('/root')) {
$error = error_get_last();
if (preg_match('/something/', $error['message'])) {
// do something
} elseif (preg_match('/somethingelse/', $error['message'])) {
// do something
}
}
Altri suggerimenti
Puoi controllare in anticipo se ti è permesso fare una sorta di azione come file_exists()
e is_ dir()
Per verificare se esiste una directory e fileperms()
o solo is_ writable()
Per verificare se puoi scrivere una directory.
Puoi anche provare a "catturare" l'errore come con le eccezioni. Puoi specificare un gestore di errori personalizzato, ma questo sembra essere un po 'eccessivo.