PHP mkdir Funktion gibt nur wahr und falsch zurück. Problem ist, wenn es falsch zurückgibt.Wie findet man einen Grund, wenn mkdir aus PHP ausfällt?
Wenn ich mit Fehlerberichterstattung aktiviert bin, sehe ich die Fehlermeldung auf dem Bildschirm. Ich kann die Fehlermeldung auch im Apache Protokoll sehen. Aber ich würde gerne den Text der Nachricht erfassen und etwas anderes damit machen (z. B. mir über IM senden). Wie bekomme ich den Fehlertext?
Update: Nach Ayman Idee kam ich zu diesem:
function error_handler($errno, $errstr) {
global $last_error;
$last_error = $errstr;
}
set_error_handler('error_handler');
if (!mkdir('/somedir'))
echo "MKDIR failed, reason: $last_error\n";
restore_error_handler();
aber ich mag es nicht, weil es globale Variable verwendet. Irgendeine Idee für eine sauberere Lösung?
Soulmerge Antwort ist eine bessere Wahl weil es Sie über den Fehler informiert, ohne den Handler zu ersetzen. –
Beachten Sie, dass Fehlerhandler auf einem Stapel in PHP gespeichert sind, was bedeutet, dass der Aufruf von restore_error_handler() den vorherigen Fehlerhandler wiederherstellen wird, unabhängig davon, ob es sich um den integrierten Handler oder einen anderen benutzerdefinierten Handler handelt. Es gibt also keinen Verlust, wenn der Error-Handler vorübergehend durch set_error_handler() ersetzt wird. – soulmerge