Подтвердить что ты не робот

Как получить последний каталог из пути в строке

Я пытаюсь получить последнее имя папки из пути, который я храню в строке.

например: Home/new_folder/test

result = test
4b9b3361

Ответ 1

Используйте basename

basename('Home/new_folder/test');
// output: test

В качестве побочного примечания тем, кто ответил, взорвался:

Чтобы получить конечный компонент имени пути, вы должны использовать basename! Если ваш путь будет чем-то вроде $str = "this/is/something/", комбо end(explode($str)); завершится с ошибкой.

Ответ 2

Вы можете использовать функцию basename():

$last = basename("Home/new_folder/test");

Ответ 3

Вы можете использовать pathinfo - pathinfo

$pathinfo = pathinfo('dir/path', PATHINFO_DIRNAME);
$pathinfo = array_filter( explode('/', $pathinfo) );

$result = array_pop($pathinfo);

Это также гарантирует, что конечная косая черта не означает, что возвращается пустая строка.

Ответ 4

Я знаю, что это старый вопрос, но он автоматически получает последнюю папку, не запутывая последний элемент в списке - это может быть script - а не фактическая последняя папка.

$url = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
$url_var = explode('/' , $url);
$last_folder = end($url_var);

Ответ 5

Explode превращает строку в массив, тогда вы можете выбрать последнее значение в этом массиве в качестве результата.

$result = end((explode('/', $path)));

Ответ 6

$directory = 'Home/new_folder/test';
$path = explode('/',$directory);
$lastDir = array_pop($path);

Ответ 7

Итак, вы хотите что-то динамическое, которое будет работать большую часть времени, как есть... возможно, функция многократного использования или что-то в этом роде.

Получите URI из данных, которые веб-сервер предоставил вам в запросе через данные $_SERVER: $_SERVER ('REQUEST_URI')

Из этого URI получите путь: parse_url ($ _ SERVER ['REQUEST_URI'], PHP_URL_PATH))

basename() - это правильный инструмент для получения последнего каталога после того, как вы перегоняли путь из полного URI: basename (parse_url ($ _ SERVER ['REQUEST_URI'], PHP_URL_PATH))

function lastPathDir() {
    // get a URI, parse the path from it, get the last directory, & spit it out 
    return basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
}

Ответ 8

<?php
$path = explode('/', $yourPathVar);
// array_pop gives you the last element of an array()
$last = array_pop($path);
?>

Ответ 9

Это также работает на среде Windows, а также работает, если указанный путь заканчивается косой чертой.

function path_lastdir($p) {
    $p=str_replace('\\','/',trim($p));
    if (substr($p,-1)=='/') $p=substr($p,0,-1);
    $a=explode('/', $p);
    return array_pop($a);
}