2012-04-23 5 views
0

Я пишу списки каталогов и хочу получить имя последнего каталога.Как получить последнюю часть заданного пути?

Пример:

/data/henry/files/gallery 

Я только хочу, чтобы получить последний каталог, который галерея.

Я пробовал с substr('abcdef', 1), но это статично.

У меня есть идея сохранить каталоги в массиве, а затем получить последнее значение, но как я могу это сделать?

EDIT:

Благодаря @deceze для простого решения.

Мое решение было больше и не рекомендуется:

$dirarray = explode("/",$row['source']); 
$total = count($dirarray); 
$sharename = $dirarray[($total-1)]; 

ответ

4
echo basename('/data/henry/files/gallery'); 

http://php.net/basename

+0

Wow that was sooo easyy! Спасибо! – Mezzan

+0

Я нашел другое решение, но оно длинное; – Mezzan

+0

Вот как вы это сделаете. –

0

Как об использовании регулярных выражений? Если предположить, что текст в $text переменной:

preg_match_all("|(/[a-z]+)$|", $text, $result); 

$result будет содержать /gallery.

+0

Это не сработает, после исправления опечаток он по-прежнему не работает с '/ foo/bar-baz' или'/hello/from/pcre_world' –

+0

отредактирован для правильного форматирования и исправления недостающей метки кавычек. Но 'basename()' все еще лучший ответ. PHP имеет множество функций для этих общих операций; не всегда предполагайте, что вы должны сделать это сами. – Spudley

Смежные вопросы