PHP: Jak pomocí mkdir() jednoduše vytvořit vnořený adresář? I když některý adresář v cestě zatím neexistujte

by Zdeněk Večeřa 1 Comment

Máte existující adresář /data/ a chcete v něm pomocí PHP vytvořit další dva adresáře (export/temp/)? Čili aby výsledná struktura vypadala nějak takto: /data/export/temp/

Zavolání funkce:

mkdir('/data/export/temp/')

zahlásí chybu, protože nedokáže vytvořit adresář „temp“ v adresáři „export“, který neexistuje. Potřebujete tedy zavolat funkci mkdir() se třetím parametrem „true“ (recursive), kterým říkáte, že chcete, aby funkce vytvořila všechny adresáře, které jsou v cestě uvedeny.

Protože musíte navíc uvést i práva k adresáři (například právo 0750), je vhodné před tím napřed vynulovat umask(). Třeba takto:

$dir = '/data/export/temp/';

umask(0000);

if (!mkdir($dir, 0750, true)) {
    // Chyba, adresar se nepodarilo vytvorit
}

Comment ( 1 )

  1. Michal Škoula
    Hezké, o třetím parametru jsem nevěděl :)

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..