#32162 [Opn->Fbk]: dirname returning \ for root entries
ID: 32162
Updated by: sniper@php.net
Reported By: paul at wavebreaks dot com
-Status: Open
+Status: Feedback
Bug Type: Directory function related
Operating System: Windows XP SP2
PHP Version: 5.0.3
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
Previous Comments:
------------------------------------------------------------------------
[2005-03-02 08:21:05] paul at wavebreaks dot com
Description:
------------
This is probably the same or related to
http://bugs.php.net/bug.php?id=25450 and
http://bugs.php.net/bug.php?id=18710 but since
they are for Win 2k
and/or closed, I thought the best bet was to open a new one.
When a path-like-string is passed to dirname, if, and only if, the last
entity (file, dir) is on the root (ie: only one / in the string) then
dirname returns a backslash instead of a forward slash.
There doesn't appear to be a config to tell PHP which part seperator to
use, thus the dirname function is pointlessly broken unless you can
guarentee it will never be given a root level entry.
This, also, breaks your example in the documentation for header() for
Location: header types.
Reproduce code:
---------------
print (dirname('/foo')."\n");
print (dirname('/foo/bar')."\n");
Expected result:
----------------
/
/foo
Actual result:
--------------
\
/foo
You might argue it's not a bug since Windows is meant to handle both
types of path seperator, but a URI does not, and this is you main
audience.
This issue has been around for way past way too long.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=32162&edit=1
Thread (6 messages)