PHP의 mkdir 함수는 true와 false만을 반환합니다. 문제는 false를 반환 할 때입니다.mkdir가 PHP에서 실패 할 때 이유를 찾는 방법은 무엇입니까?
오류보고를 사용하는 상태에서 실행 중이면 화면에 오류 메시지가 표시됩니다. 아파치 로그에서 오류 메시지를 볼 수도 있습니다. 그러나 나는 메시지의 텍스트를 잡고 그것을 가지고 뭔가 다른 것을하고 싶다. (예를 들면 IM을 통해 나에게 보낸다.) 오류 텍스트를 얻으려면 어떻게해야합니까?
업데이트 : 아이 만의 생각에 따라, 내가 여기에 온 : 그것은 전역 변수를 사용하기 때문에
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();
그러나, 나는 그것을 좋아하지 않아. 더 깔끔한 솔루션에 대한 아이디어가 있습니까? error_get_last()
의
Soulmerge의 대답은 더 나은 선택이다 핸들러를 교체하지 않고 오류에 대해 알려주기 때문입니다. –
오류 처리기는 PHP의 스택에 저장되므로 restore_error_handler()를 호출하면 내장 오류 처리기 또는 다른 사용자 정의 처리기인지 여부에 관계없이 이전 오류 처리기가 복원됩니다. 따라서 오류 처리기를 set_error_handler()로 일시적으로 대체하는 데 손실이 없습니다. – soulmerge