Я пытаюсь получить последнее имя папки из пути, который я храню в строке.
например: Home/new_folder/test
result = test
Использовать базовое имя
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);
Это также гарантирует, что конечная косая черта не означает, что возвращается пустая строка.
Я знаю, что это старый вопрос, но это автоматически получает последнюю папку, не запутывая последний элемент в списке – это может быть сценарий, а не фактическая последняя папка.
$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); }