#21222 [Bgs]: problem with dirname
| From: | philip@php.net | Date: | Sat, 28 Dec 2002 01:28:47 +0000 |
| Subject: | #21222 [Bgs]: problem with dirname | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-28524@lists.php.net to get a copy of this message | ||
ID: 21222
Updated by: philip@php.net
Reported By: Beater@orgalan.de
Status: Bogus
Bug Type: Directory function related
Operating System: Win2k
PHP Version: 4.3.0
New Comment:
See also:
http://bugs.php.net/bug.php?id=20895
Maybe someone with a clue (unlike me) can document this.
Previous Comments:
------------------------------------------------------------------------
[2002-12-27 15:49:00] rasmus@php.net
No, the trailing / the docs talk about are cases where you actually
have a trailing / in the source path. eg. /some/path/
It does not mean that the trailing path of the returned string will be
stripped.
------------------------------------------------------------------------
[2002-12-27 15:46:26] michiwalter@gmx.de
That reasoning doesn't quite go along with what the documentation says,
IMHO:
(quoted from http://www.php.net/dirname)
"[...]Essentially, this means that if there are no slashes in path , a
dot ('.') is returned, indicating the current directory. Otherwise, the
returned string is path with any trailing /component removed.[...]"
So for the input '/test.php', the first case (no slashes in path)
obviously doesn't apply, since there is a slash contained in the path
in question.
Now, the second case states that the returned string is the path
('/test.php') with any trailing /component (in this case '/test.php')
removed, i.e. simply ''.
So there seems to be some kind of contradiction between the manual and
what you said, could your elaborate on that, please? Apologies if I'm
missing the point,
Michael
PS: Even if the behaviour was changed to return '/' instead of an empty
string, the transformation of '/' to the default directory separator
should still be officially documented (and not in the user comments).
------------------------------------------------------------------------
[2002-12-27 15:27:42] rasmus@php.net
Your expectation is simply wrong. dirname() is documented to return
the directory component of a pathname you feed it. You fed it
/test.php and it gave you back / (or the Windows equivalent thereof) as
expected.`
------------------------------------------------------------------------
[2002-12-27 15:24:46] Beater@orgalan.de
Hi there,
<?php
echo $_SERVER['REQUEST_URI'] . '<br>';
echo '"' . dirname($_SERVER['REQUEST_URI']) . '"';
?>
produces following output...
/test.php
"\"
Instead of the output above, i expected
/test.php
""
Can someone confirm this?
Daniel
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=21222&edit=1