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:
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);
}
}
Previous Comments:
------------------------------------------------------------------------
[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