Skip to Content
PHP Cookbook
book

PHP Cookbook

by David Sklar, Adam Trachtenberg
November 2002
Intermediate to advanced
640 pages
16h 33m
English
O'Reilly Media, Inc.
Content preview from PHP Cookbook

19.10. Making New Directories

Problem

You want to create a directory.

Solution

Use mkdir( ) :

mkdir('/tmp/apples',0777) or die($php_errormsg);

Discussion

The second argument to mkdir( ) is the permission mode for the new directory, which must be an octal number. The current umask is taken away from this permission value to create the permissions for the new directory. So, if the current umask is 0002, calling mkdir('/tmp/apples',0777) sets the permissions on the resulting directory to 0775 (user and group can read, write, and execute; others can only read and execute).

PHP’s built-in mkdir( ) can make a directory only if its parent exists. For example, if /tmp/a doesn’t exist, you can’t create /tmp/a/b until /tmp/a is created. To create a directory and its parents, you have two choices: you can call your system’s mkdir program, or you can use the pc_mkdir_parents( ) function, shown in Example 19-3. To use your system’s mkdir program, on Unix, use this:

system('/bin/mkdir -p '.escapeshellarg($directory));

On Windows do:

system('mkdir '.escapeshellarg($directory));

You can also use the pc_mkdir_parents( ) function shown in Example 19-3.

Example 19-3. pc_mkdir_parents( )

function pc_mkdir_parents($d,$umask = 0777) { $dirs = array($d); $d = dirname($d); $last_dirname = ''; while($last_dirname != $d) { array_unshift($dirs,$d); $last_dirname = $d; $d = dirname($d); } foreach ($dirs as $dir) { if (! file_exists($dir)) { if (! mkdir($dir,$umask)) { error_log("Can't make directory: $dir"); return ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

PHP Cookbook

PHP Cookbook

Eric A. Mann
PHP Cookbook, 2nd Edition

PHP Cookbook, 2nd Edition

Adam Trachtenberg, David Sklar
PHP Cookbook, 3rd Edition

PHP Cookbook, 3rd Edition

David Sklar, Adam Trachtenberg
Programming PHP

Programming PHP

Rasmus Lerdorf, Kevin Tatroe

Publisher Resources

ISBN: 1565926811Supplemental ContentCatalog PageErrata