My_mkdir

Contenu du snippet

Bon. Dans un script de galerie que j'ai fait, j'avais besoin de créer multiples sous dossiers.
Et c'est à ce moment là que j'ai remarqué que la fonction mkdir était incaple de créer le dossier " sousdossier " dans le dossier " machin " ( machin/sousdossier ), si le dossier " machin " en question n'existe pas ...
Il faut donc faire :
mkdir('machin', 0700);
mkdir('machin/sousdossier', 0700);
Ce qui est un peu galère, d'où mon besoin de créer la fonction my_mkdir, qui fera ça automatiquement.

Source / Exemple :


function my_mkdir($dir, $chmod = 0700)
{
        // Si $dir ne contient rien
        if (!empty($dir))
        {
                $array = explode('/', $dir);
                $base_dir = '';
                
                foreach ($array as $key => $value)
                {
                        if ($key)
                                $base_dir .= '/' . $value;
                        else
                                $base_dir .= $value;

                        // Si le dossier à créer existe déjà, on ne fait rien ( ça évite que php retourne une erreur ).
                        // Le !empty($value) est là pour éviter de faire tourner le code, dans cet exemple là :
                        // $dir = 'test/truc/';
                        // on aurait : $array[2] = '';
                        // Inutile donc de faire tourner le code pour ça :)
                        if (!file_exists($base_dir) && !empty($value))
                                if (!mkdir($base_dir, $chmod))
                                        echo 'Unable to create folder "' . $base_dir . '"<br />';
                }
        }
        else
                echo '$dir is not set.';
}

Conclusion :


normalement, il vous suffit de faire :
my_mkdir('test/machin/truc');
pour créer ces trois dossier avec un CHMOD 0700
vous pouvez aussi choisir vous même ce CHMOD :
my_mkdir('test/machin/truc', 0777);

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.