php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #76081 mkdir(..., ..., true) should not return false when the directory exists
Submitted: 2018-03-12 02:07 UTC Modified: 2021-07-21 14:19 UTC
Votes:3
Avg. Score:2.7 ± 1.2
Reproduced:1 of 2 (50.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: marco dot agnoli at me dot com Assigned:
Status: Suspended Package: Directory function related
PHP Version: Irrelevant OS: Irrelevant
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: marco dot agnoli at me dot com
New email:
PHP Version: OS:

 

 [2018-03-12 02:07 UTC] marco dot agnoli at me dot com
Description:
------------
It would be really useful if the mkdir function with the $recursive parameter set to TRUE would behave the same way as mkdir -p command on linux.

The difference between the two is that mkdir -p does not report an error if the directory already exists while the php version does.

And triggering a WARNING seems a bit too much, why not trigger a NOTICE or nothing at all when the directory already exists?

If backwards compatibility is a concern then we can create a new function called "mkdirp($path, $perm)".

Test script:
---------------
<?php

var_dump(mkdir('/tmp/a/b/c/d/', 0777, true));
var_dump(mkdir('/tmp/a/b/c/d/', 0777, true));

Expected result:
----------------
bool(true)
bool(true)

Actual result:
--------------
bool(true)
bool(false)

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2021-07-21 14:19 UTC] cmb@php.net
-Status: Open +Status: Suspended
 [2021-07-21 14:19 UTC] cmb@php.net
Either change should go through the RFC process[1].  I suspend
this rticket for the time being.

[1] <https://wiki.php.net/rfc/howto>
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Fri May 09 13:01:28 2025 UTC