我想从一个保存在字符串中的路径中获取最后一个文件夹名。
例如: Home/new_folder/test
result = test
使用basename函数。
basename('Home/new_folder/test');
// output: test
作为对那些回答使用 explode 的补充说明:/home/test/some_file.php
,并且你需要该文件所在目录test
,可以使用basename(dirname('/home/test/some_file.php'));
。感谢您的建议。 - Mikhail.root$last = basename("Home/new_folder/test");
$pathinfo = pathinfo('dir/path', PATHINFO_DIRNAME);
$pathinfo = array_filter( explode('/', $pathinfo) );
$result = array_pop($pathinfo);
Explode将字符串转换为数组,然后您可以选择该数组中的最后一个值作为结果。
$result = end((explode('/', $path)));
试试这个
echo basename(dirname(__FILE__));
或者这个
echo basename(dirname(__DIR__));
我知道这是一个老问题,但是这个方法可以自动获取最后一个文件夹,而不会把列表中的最后一个项弄混 - 这可能是脚本,而不是实际的最后一个文件夹。
$url = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
$url_var = explode('/' , $url);
$last_folder = end($url_var);
explode(DIRECTORY_SEPARATOR, $url);
来使它在Windows/Linux上兼容。 - Kalimah您可以执行
$baseUrl=basename('/path/to/site');
echo $baseUrl;
'/'
,则可以执行以下操作:$url_to_array = parse_url('/path/to/site/');
$baseUrl = basename($url_to_array['path']);
echo $baseUrl;`
$directory = 'Home/new_folder/test';
$path = explode('/',$directory);
$lastDir = array_pop($path);
<?php
$path = explode('/', $yourPathVar);
// array_pop gives you the last element of an array()
$last = array_pop($path);
?>
因此,您希望有一个动态的东西,大部分时间可以直接使用--也许是可重用的函数或其他内容。
通过$_SERVER数据从Web服务器提供的数据中获取URI:$_SERVER('REQUEST_URI')
从该URI中获取路径:parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))
一旦从完整URI中提取了路径,basename()是获取最后一个目录的正确工具: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));
}
\/[^\/]+$
。 - Muhammad Omer Aslam