php 截取www后面的目录,php-如何从字符串路径中获取最后一个目录

这篇博客讨论了如何在PHP中从字符串路径中提取最后一个目录名称。提供了多种解决方案,包括使用basename()函数、explode()和array_pop()等方法。示例代码和讨论涵盖了不同的情况,如路径末尾带斜杠的情况。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值