mkdir

Makes directory

&reftitle.description; `bool` `mkdir` `string` `directory` `int` `permissions` 0777 `bool` `recursive`&false; ``resource``null```context`&null;

Attempts to create the directory specified by `directory`.

&reftitle.parameters;

`directory`

- The directory path. &tip.fopen-wrapper;

`permissions`

- The permissions are 0777 by default, which means the widest possible access. For more information on permissions, read the details on the `chmod` page.

  `permissions` is ignored on Windows.

  Note that you probably want to specify the `permissions` as an octal number, which means it should have a leading zero. The `permissions` is also modified by the current umask, which you can change using `umask`.

`recursive`

- If &true;, then any parent directories to the `directory` specified will also be created, with the same permissions.

`context`

- ¬e.context-support;
&reftitle.returnvalues;

&return.success;

If the directory to be created already exists, that is considered an error and &false; will still be returned. Use `is_dir` or `file_exists` to check if the directory already exists before trying to create it.

&reftitle.errors;

Emits an `E_WARNING` level error if the directory already exists.

Emits an `E_WARNING` level error if the relevant permissions prevent creating the directory.

&reftitle.examples;

### `mkdir` example

    <?php
    mkdir("/path/to/my/dir", 0700);
    ?>

### `mkdir` using the `recursive` parameter

    <?php
    // Desired directory structure
    $structure = './depth1/depth2/depth3/';

    // To create the nested structure, the $recursive parameter
    // to mkdir() must be specified.

    if (!mkdir($structure, 0777, true)) {
        die('Failed to create directories...');
    }

    // ...
    ?>

&reftitle.seealso;

- `is_dir`
- `rmdir`
- `umask`