Я пытаюсь получить последнее имя папки из пути, который я храню в строке.
например: Home/new_folder/test
result = test
Я пытаюсь получить последнее имя папки из пути, который я храню в строке.
например: Home/new_folder/test
result = test
Используйте basename
basename('Home/new_folder/test');
// output: test
В качестве побочного примечания тем, кто ответил, взорвался:
Чтобы получить конечный компонент имени пути, вы должны использовать basename!
Если ваш путь будет чем-то вроде $str = "this/is/something/"
, комбо end(explode($str));
завершится с ошибкой.
Вы можете использовать функцию basename():
$last = basename("Home/new_folder/test");
Вы можете использовать pathinfo - pathinfo
$pathinfo = pathinfo('dir/path', PATHINFO_DIRNAME);
$pathinfo = array_filter( explode('/', $pathinfo) );
$result = array_pop($pathinfo);
Это также гарантирует, что конечная косая черта не означает, что возвращается пустая строка.
Я знаю, что это старый вопрос, но он автоматически получает последнюю папку, не запутывая последний элемент в списке - это может быть script - а не фактическая последняя папка.
$url = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
$url_var = explode('/' , $url);
$last_folder = end($url_var);
Explode превращает строку в массив, тогда вы можете выбрать последнее значение в этом массиве в качестве результата.
$result = end((explode('/', $path)));
$directory = 'Home/new_folder/test';
$path = explode('/',$directory);
$lastDir = array_pop($path);
Итак, вы хотите что-то динамическое, которое будет работать большую часть времени, как есть... возможно, функция многократного использования или что-то в этом роде.
Получите 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));
}
<?php
$path = explode('/', $yourPathVar);
// array_pop gives you the last element of an array()
$last = array_pop($path);
?>
Это также работает на среде 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);
}