note 70971 deleted from function.mkdir by felipe
| From: | felipe@php.net | Date: | Mon, 10 Dec 2007 18:05:17 +0000 |
| Subject: | note 70971 deleted from function.mkdir by felipe | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-133251@lists.php.net to get a copy of this message | ||
Note Submitter: V-Tec (vojtech.vitek at seznam dot cz)
----
This is the way how to create all the path, if you don't
know exactly what folders and sub-folders really exist.
The function works with absolute or relative
path of some folder or file.
It works correctly.
<?
function mk_dir($path, $rights = 0777)
{
$folder_path = array(
strstr($path, '.') ? dirname($path) : $path);
while(!@is_dir(dirname(end($folder_path)))
&& dirname(end($folder_path)) != '/'
&& dirname(end($folder_path)) != '.'
&& dirname(end($folder_path)) != '')
array_push($folder_path, dirname(end($folder_path)));
while($parent_folder_path = array_pop($folder_path))
if(!@mkdir($parent_folder_path, $rights))
user_error("Can't create folder \"$parent_folder_path\".");
}
mk_dir('example_1/relative/path/of/new-folder/file.ext');
mk_dir('example_2/relative/path/of/new-folder');
mk_dir('/example_3/absolute/path/of/new-folder/file.ext');
mk_dir('/example_4/absolute/path/of/new-folder');
?>