How to find a reason when mkdir fails from PHP? How to find a reason when mkdir fails from PHP? php php

How to find a reason when mkdir fails from PHP?


You can suppress the warning and make use of error_get_last():

if (!@mkdir($dir)) {    $error = error_get_last();    echo $error['message'];}


You could use exceptions:

Setup some code like so:

function exception_error_handler($errno, $errstr, $errfile, $errline ) {    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);}set_error_handler("exception_error_handler");

And then just do:

try {   mkdir('/somedir');} catch(ErrorException $ex) {   echo "Error: " . $ex->getMessage();}

That should do what you want.

If you want to preserve the php error handler, then after that try catch block, just call:

restore_error_handler()


I use something like the following:

if(! @mkdir('$fileLocation', 0777, $recursive = true)){    $mkdirErrorArray = error_get_last();    throw new Exception('cant create directory ' .$mkdirErrorArray['message'], 1);}