Ce face mkdir
mkdir creează un director. Implicit creează doar ultimul nivel din cale: dacă directorul părinte nu există, funcția eșuează. Cu al treilea parametru true creează toată calea, de exemplu uploads/2026/10.
Permisiunile se scriu în octal, cu 0 în față: 0755. Valoarea implicită 511 este 0777 scris în zecimal. Permisiunile finale sunt reduse de setarea umask a serverului.
Parametri
| Parametru | Descriere |
|---|---|
$directory |
Calea directorului de creat. |
$permissions |
Opțional. Permisiunile în octal, de exemplu 0755. Ignorat pe Windows. |
$recursive |
Opțional. true creează și directoarele părinte care lipsesc. |
$context |
Opțional. Un context de stream, rar folosit. |
Ce returnează
true dacă directorul a fost creat, false la eroare (împreună cu un avertisment).
Exemple
Exemplul 1: Un director simplu
<?php
var_dump(mkdir("imagini"));
var_dump(is_dir("imagini"));
Rezultat
bool(true)
bool(true)
Exemplul 2: Toată calea, pe ani și luni
Fără true la final, apelul ar eșua, pentru că uploads și uploads/2026 nu există încă.
<?php
$cale = "uploads/2026/10";
mkdir($cale, 0755, true);
var_dump(is_dir($cale));
Rezultat
bool(true)
Exemplul 3: Creare sigură, fără avertismente
<?php
$cale = "exporturi";
foreach ([1, 2] as $incercare) {
if (!is_dir($cale) && !mkdir($cale, 0755, true)) {
exit("Nu am putut crea $cale");
}
echo "Încercarea $incercare: directorul există\n";
}
Rezultat
Încercarea 1: directorul există
Încercarea 2: directorul există
Greșeli frecvente
- Apelezi
mkdirpe un director care există deja și primeștiWarning: mkdir(): File exists. Verifică întâi cuis_dir. - Creezi
a/b/cfără al treilea parametrutrueși primeștiNo such file or directory. - Scrii permisiunile fără zero în față:
mkdir($d, 755). Numărul 755 în zecimal înseamnă cu totul alte drepturi. Scrie0755.