Re: trim last folder in a path



In news:HeidnTcRG8UFIV3fRVn-1w@xxxxxxxxxxxxx,
paul <paul@xxxxxxx> wrote:
> Philip Olson wrote:
>> Or simply check out the dirname() and basename() functions. Okay,
>> basename() is what you want but they both are useful :-)
>>
>
> Thanks but not what I needed this time. I needed the final folder in a
> long path as retrieved by getcwd() 'GET Current Working Directory'.
>
> basename() returns the file name minus extension... which I can use
> elsewhere in this script as it happens!

Basename will still work even if the last part of the path is a directory.
Taken from the basename() manual page:

antrik at users dot sf dot net
15-Nov-2004 06:40
When using basename() on a path to a directory ('/bar/foo/'), the last path
component ('foo') is returned, instead of the empty string one would expect.
(Both PHP 4.1.2 and 4.3.8 on GNU/Linux.) No idea whether this is considered
a bug or a feature -- I found it extremely annoying. Had to work around
using: <?php $file=substr($path, -1)=='/'?'':basename($path) ?> Watch out!

--
Andrew @ Rockface
np: Blind Willie Johnson - Take Your Stand
www.rockface-records.co.uk


.



Relevant Pages

  • Re: trim last folder in a path
    ... Or simply check out the dirname() and basename() functions. ... Okay, ... Prev by Date: ...
    (alt.php)
  • Re: dirname and basename errors
    ... Remi Villatel wrote: ... | I encountered a strange behavior of dirname and basename: ...
    (comp.os.linux.misc)
  • Re: [opensuse] bash pipe
    ... On Tuesday 30 September 2008 00:19, Brian K. White wrote: ... than the unnecessary process fork of running basename. ... I'd composed a message with this (and the dirname counterpart, ... The first gives you an empty string if you're in "/", ...
    (SuSE)
  • Re: Command-line equivalent of "Create archive of..."
    ... Use basename and dirname to get just the filename and path respectively from a combined path/filename. ... The shell command that you need to execute is: ...
    (uk.comp.sys.mac)
  • Re: dirname and basename errors
    ... > basename shoud return an empty string IMHO. ... in a slash should be interpreted as if it had a dot after it). ... write your own functions to replace basename and dirname. ...
    (comp.os.linux.misc)