Anstatt beides zu überprüfen, könnten Sie Folgendes tun if(stream_resolve_include_path($folder)!==false)
. Es ist Langsamer sondern schlägt zwei Fliegen mit einer Klappe.
Eine andere Möglichkeit besteht darin, die E_WARNING
, pas durch die Verwendung von @mkdir(...);
(denn das würde einfach alle möglichen Warnungen außer Acht lassen, nicht nur die, dass das Verzeichnis bereits existiert), sondern durch die Registrierung eines speziellen Fehlerhandlers, bevor man es tut:
namespace com\stackoverflow;
set_error_handler(function($errno, $errm) {
if (strpos($errm,"exists") === false) throw new \Exception($errm); //or better: create your own FolderCreationException class
});
mkdir($folder);
/* possibly more mkdir instructions, which is when this becomes useful */
restore_error_handler();