Create Directories With PHP
When writing a PHP script that needs to create directories, it's nice to have a function to pop into the script to do the job.
The below MakeDirectoryPath()
function is designed to do exactly that. You specify the location for the directory. The function will create any directories as needed to ensure the location exists on the server.
<?php
$directory = '/testdir/subdir/anothersubdir'; # location relative to document root
MakeDirectoryPath($directory);
function MakeDirectoryPath($d)
{
$d = "{$_SERVER['DOCUMENT_ROOT']}$d";
if(file_exists($d)) { return; }
$ta = explode('/',(preg_replace('/^'.preg_quote($_SERVER['DOCUMENT_ROOT'],'/').'\/?/','',$d)));
$d = $_SERVER['DOCUMENT_ROOT'];
while(count($ta))
{
$d .= '/'.array_shift($ta);
if(!file_exists($d)) { mkdir($d,0777); }
}
}
?>
Replace /testdir/subdir/anothersubdir
in the above code with the location of the directory that needs to exist. Specify the location relative to document root.
(This blog post first appeared in Possibilities newsletter.)
Will Bontrager