# mkdir

(PHP 4, PHP 5, PHP 7)

mkdir — Makes directory

### Description

mkdir ( string `$pathname` [, int `$mode` = 0777 [, bool `$recursive` = `FALSE` [, resource `$context` ]]] ) : bool

Attempts to create the directory specified by pathname.

### Parameters

`pathname`

  The directory path.

`mode`

  The mode is 0777 by default, which means the widest possible access. For more information on modes, read the details on the chmod() page.

  > Note:

  > `mode` is ignored on Windows.

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

`recursive`

  Allows the creation of nested directories specified in the `pathname`.

`context`

  > Note: Context support was added with PHP 5.0.0. For a description of `contexts`, refer to Streams.

### Return Values

Returns `TRUE` on success or `FALSE` on failure.

### Examples

Example #1 mkdir() example

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

Example #2 mkdir() using the `recursive` parameter

`<?php
// Desired folder 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 folders...');
}
// ...
?>`

### Errors/Exceptions

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.

### See Also

- is_dir() - Tells whether the filename is a directory
- rmdir() - Removes directory