is_dir în PHP

Verifică dacă o cale indică un director existent.

Sintaxă
is_dir(string $filename): bool

Ce face is_dir

is_dir returnează true doar dacă la calea dată se află un director. Este folosit cel mai des înainte de mkdir, ca să nu încerci să creezi un director care există deja.

Parametri

Parametru Descriere
$filename Calea verificată.

Ce returnează

true dacă există și este director, altfel false.

Exemple

Exemplul 1: Director sau fișier

<?php
mkdir("uploads");
file_put_contents("index.html", "<h1>Salut</h1>");

var_dump(is_dir("uploads"));
var_dump(is_dir("index.html"));
var_dump(is_dir("lipsa"));

Rezultat

bool(true)
bool(false)
bool(false)

Exemplul 2: Creează directorul de cache doar dacă lipsește

Al doilea apel nu mai încearcă să creeze directorul, deci nu apare avertismentul File exists.

<?php
function director_cache(string $cale): string
{
    if (!is_dir($cale)) {
        mkdir($cale, 0755, true);
        echo "Am creat $cale\n";
    }
    return $cale;
}

director_cache("cache/pagini");
director_cache("cache/pagini");
echo "Gata";

Rezultat

Am creat cache/pagini
Gata

Greșeli frecvente

  • Verifici cu file_exists înainte de mkdir. Dacă există un fișier cu același nume, file_exists spune true, dar directorul tot nu există.

Comenzi înrudite

  • mkdir: Creează un director nou, opțional cu toate directoarele părinte care lipsesc.
  • is_file: Verifică dacă o cale indică un fișier obișnuit (nu un director).
  • file_exists: Verifică dacă un fișier sau un director există pe disc.
  • scandir: Returnează lista fișierelor și directoarelor dintr-un director, sortată alfabetic.