Funkcja mkdir PHP zwraca tylko wartość true i false. Problem polega na tym, że zwraca false.Jak znaleźć powód niepowodzenia mkdir z PHP?
Jeśli mam włączony komunikat o błędzie, widzę komunikat o błędzie na ekranie. Mogę również zobaczyć komunikat o błędzie w dzienniku Apache. Ale chciałbym pobrać tekst wiadomości i zrobić z nią coś innego (np. Wysłać do mnie przez IM). Jak mogę uzyskać tekst błędu?
Aktualizacja: Po idei Ayman za doszedłem do tego:
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();
Jednak nie podoba mi się to, ponieważ wykorzystuje zmienną globalną. Masz pomysł na czystsze rozwiązanie?
odpowiedź Soulmerge jest lepszym wyborem ponieważ informuje o błędzie bez zastępowania programu obsługi. –
Należy zauważyć, że obsługa błędów jest przechowywana na stosie w PHP, co oznacza, że wywołanie funkcji restore_error_handler() przywróci poprzednią procedurę obsługi błędów, niezależnie od tego, czy był to wbudowany program obsługi lub inny niestandardowy moduł obsługi. Więc nie ma strat w czasowym zastąpieniu procedury obsługi błędu przez set_error_handler(). – soulmerge