You can stop the error message from displaying either by suppressing error messages globally (in config or runtime) with the display_errors
setting, or case by case by prefixing the function call with an @
-character. (E.g. @mkdir('...')
).
You can then check with error_get_last
when mkdir
returns false
.
For error logging global rules apply. You can log errors manually with error_log
.
For further reading, see the manual section on Error handling.
Edit:
As suggested in the comments, a custom error handler is also a possible, arguably more robust (depending on your implementation) but certainly more elegant, solution.
function err_handler($errno, $errstr) {
// Ignore or log error here
}
set_error_handler('err_handler');
This way, the error message will not display, unless you explicitly echo it. Note, though, when using a custom error handler error_get_last
will return NULL
.