php-如何从字符串路径中获取最后一个目录
我试图从我存储在字符串中的路径中获取最后一个文件夹名称。
例如:Home/new_folder/test
result = test
Rickstar asked 2020-08-10T07:47:50Z
11个解决方案
104 votes
使用基名
basename('Home/new_folder/test');
// output: test
作为对那些回答者的注释,爆炸式增长:
要获取路径的结尾名称部分,您应该使用basename!如果您的路径类似于$str = "this/is/something/",则end(explode($str));组合将失败。
acm answered 2020-08-10T07:48:04Z
17 votes
您可以使用basename()函数:
$last = basename("Home/new_folder/test");
Kel answered 2020-08-10T07:48:24Z
8 votes
您可以使用pathinfo-pathinfo
$pathinfo = pathinfo('dir/path', PATHINFO_DIRNAME);
$pathinfo = array_filter( explode('/', $pathinfo) );
$result = array_pop($pathinfo);
这也将确保结尾的斜杠并不意味着返回空白字符串。
Matt Lowden answered 2020-08-10T07:48:48Z
4 votes
我知道这是一个老问题,但这会自动获取最后一个文件夹而不会混淆列表中的最后一个项目(可能是脚本),而不是实际的最后一个文件夹。
$url = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
$url_var = explode('/' , $url);
$last_folder = end($url_var);
Ash501 answered 2020-08-10T07:49:08Z
3 votes
爆炸将字符串转换为数组,然后可以选择该数组中的最后一个值作为结果。
$result = end((explode('/', $path)));
Alan Whitelaw answered 2020-08-10T07:49:28Z
1 votes
$directory = 'Home/new_folder/test';
$path = explode('/',$directory);
$lastDir = array_pop($path);
Mark Baker answered 2020-08-10T07:49:44Z
1 votes
$path = explode('/', $yourPathVar);
// array_pop gives you the last element of an array()
$last = array_pop($path);
?>
Björn Kaiser answered 2020-08-10T07:49:59Z
1 votes
因此,您需要某种动态的东西在大多数时间都可以正常使用-也许是可重用的功能或其他东西。
通过$ _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));
}
BradChesney79 answered 2020-08-10T07:50:34Z
1 votes
试试这个
echo basename(dirname(__FILE__));
或这个
echo basename(dirname(__DIR__));
MikeStr answered 2020-08-10T07:50:58Z
1 votes
你可以做
$baseUrl=basename('/path/to/site');
echo $baseUrl;
如果您的网址末尾有'/',则可以执行以下操作:
$url_to_array = parse_url('/path/to/site/');
$baseUrl = basename($url_to_array['path']);
echo $baseUrl;`
Shree Sthapit answered 2020-08-10T07:51:22Z
0 votes
这也适用于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);
}
countach answered 2020-08-10T07:51:43Z