PHP: Jak pomocí mkdir() jednoduše vytvořit vnořený adresář? I když některý adresář v cestě zatím neexistujte
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 )