ID:               45279
 User updated by:  ralph at deboom dot biz
 Reported By:      ralph at deboom dot biz
 Status:           Assigned
 Bug Type:         Directory function related
 Operating System: Debian Etch 4.0+
 PHP Version:      5.2.6
 Assigned To:      dmitry
 New Comment:

~_~ Oops, forgot the return $dirname:
-------------------------
<?php
function __dirname($dirname) {
        if (substr($dirname, -1, 1) == '/' || substr($dirname, -1, 1) 
== '\\') {
                $dirname = dirname($dirname.'.');
        }
        else {
                $dirname = dirname($dirname);
        }
        return $dirname;
}


Previous Comments:
------------------------------------------------------------------------

[2008-06-20 11:12:21] ralph at deboom dot biz

Ok super! :)

-------------------------------
I got a workaround for the people who are using the older versions:

<?php
function __dirname($dirname) {
        if (substr($dirname, -1, 1) == '/' || substr($dirname, -1, 1) 
== '\\') {
                $dirname = dirname($dirname.'.');
        }
        else {
                $dirname = dirname($dirname);
        }
}

------------------------------------------------------------------------

[2008-06-20 08:37:37] [EMAIL PROTECTED]

It may be a BC break to change the behavior now so I would prefer to
update the documentation instead. However, after having looked at the
code, it seems to be a bug in the implementation (but the BC issue
remains).

Assigned to Dmitry (on request).

------------------------------------------------------------------------

[2008-06-20 08:04:16] ralph at deboom dot biz

Where is the support on this bug...?

------------------------------------------------------------------------

[2008-06-16 10:59:07] ralph at deboom dot biz

Description:
------------
Quoted from: http://bugs.php.net/bug.php?id=841
[21 Dec 1998 2:06pm UTC] rasmus

The correct operations of these functions should be...

dirname returns everything PRIOR to the last / or \ in the path.
basename returns everything AFTER the last / or \ in the path.
----------------------------------------------------------------
There are several more people on www.php.net/dirname comments who are
confused by this aswell.

Reproduce code:
---------------
<?php
echo dirname('/dir1/dir2/dir3/');

Expected result:
----------------
/dir1/dir2/dir3

Or/And update the docs: www.php.net/dirname

Actual result:
--------------
/dir1/dir2



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=45279&edit=1

Reply via email to