sometimes the directory created with another mode than specified ( 0755 instead 0777 etc).
to solve that use :
<?php
$old = umask(0);
mkdir($dir,0777);
umask($old);
?> mkdir
(PHP 4, PHP 5)
mkdir — Makes directory
Description
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 . Defaults to FALSE.
- context
Note: Context support was added with PHP 5.0.0. For a description of contexts, refer to Stream Functions.
Return Values
Returns TRUE on success or FALSE on failure.
Changelog
| Version | Description |
|---|---|
| 5.0.0 | The recursive parameter was added |
| 5.0.0 | As of PHP 5.0.0 mkdir() can also be used with some URL wrappers. Refer to List of Supported Protocols/Wrappers for a listing of which wrappers support mkdir() |
| 4.2.0 | The mode parameter became optional. |
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, 0, true))
{
die('Failed to create folders...');
}
/* ... */
?> 