Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检索给定路径的最后一部分?_Php_String - Fatal编程技术网

Php 如何检索给定路径的最后一部分?

Php 如何检索给定路径的最后一部分?,php,string,Php,String,我正在写目录列表,想知道最后一个目录的名称 例如: /data/henry/files/gallery 我只想获取最后一个目录,即gallery 我尝试了substr('abcdef',1),但它是静态的 我有一个想法,将目录存储到数组中,然后检索最后一个值,但我如何才能做到这一点 编辑: 感谢@deceze提供的简单解决方案 我的解决方案较长,不推荐使用: $dirarray = explode("/",$row['source']); $total = count($dirarray);

我正在写目录列表,想知道最后一个目录的名称

例如:

/data/henry/files/gallery
我只想获取最后一个目录,即gallery

我尝试了
substr('abcdef',1)
,但它是静态的

我有一个想法,将目录存储到数组中,然后检索最后一个值,但我如何才能做到这一点

编辑:

感谢@deceze提供的简单解决方案

我的解决方案较长,不推荐使用:

$dirarray = explode("/",$row['source']);
$total = count($dirarray);
$sharename = $dirarray[($total-1)];


使用正则表达式怎么样?假设文本位于
$text
变量中:

preg_match_all("|(/[a-z]+)$|", $text, $result);

$result
将包含
/gallery

使用正则表达式怎么样?假设文本位于
$text
变量中:

preg_match_all("|(/[a-z]+)$|", $text, $result);

$result
将包含
/gallery

哇,太容易了!非常感谢。我找到了另一个解决方案,但它很长;这就是你应该做的。哇,太容易了!非常感谢。我找到了另一个解决方案,但它很长;这是您应该做的。这将不起作用,在更正打字错误后,它仍然不适用于
/foo/bar baz
/hello/from/pcre_world
编辑为正确格式并修复缺少的引号。但是
basename()
仍然是一个更好的答案。PHP有很多函数用于这些常见的操作;不要总是认为你必须自己做。这是行不通的,更正打字错误后,它仍然不能与
/foo/bar baz
/hello/from/pcre_world
一起使用,编辑为正确格式并修复缺少的引号。但是
basename()
仍然是一个更好的答案。PHP有很多函数用于这些常见的操作;不要总是认为你必须自己做。