mkdir
mkdir($cesta, $prava, $vnorene, $kontext)
Vytvoří složku a vrátí true, při chybě false s varováním. S třetím parametrem true založí i chybějící nadřazené složky.
Parametry
- $cesta – cesta k nové složce.
- $prava – nepovinný, práva na Linuxu zapsaná osmičkově (s nulou na začátku). Výchozí je 0777, výsledek ještě omezí nastavení umask.
- $vnorene – nepovinný, výchozí false. S true založí celou cestu.
- $kontext – nepovinný, kontext ze stream_context_create().
Příklady
$slozka = sys_get_temp_dir() . "/garth-slozka";
var_dump(mkdir($slozka)); // bool(true)
// existující složka: false a varování (tady potlačené @)
var_dump(@mkdir($slozka)); // bool(false)
// vnořené složky najednou
var_dump(mkdir($slozka . "/2026/10", 0755, true)); // bool(true)
// bez třetího parametru chybějící nadřazená složka: false a varování
var_dump(@mkdir($slozka . "/a/b")); // bool(false)
// založení bez chyby, i když ji mezitím založí jiný požadavek
$cesta = $slozka . "/nahrane";
if (!is_dir($cesta) && !mkdir($cesta, 0755, true) && !is_dir($cesta)) {
echo "Složku nejde založit";
}
var_dump(is_dir($cesta)); // bool(true)
rmdir($cesta);
rmdir($slozka . "/2026/10");
rmdir($slozka . "/2026");
rmdir($slozka);
Na co si dát pozor
- Práva se zapisují osmičkově s nulou na začátku (0755). Zápis 755 bez nuly je jiné číslo a složka dostane nesmyslná práva.
- Výsledná práva omezí nastavení umask serveru, z 0777 tak obvykle vznikne 0755. Na Windows se práva nepoužijí.
- Na existující složku vypíše varování a vrátí false. Před založením testujte is_dir(), případně jako v ukázce i po neúspěchu.
- Názvy složek nesestavujte ze vstupu od uživatele.
Příbuzné funkce:
rmdir()
is_dir()
is_writable()
chmod()