php中foreach的基本问题

php中foreach的基本问题,php,Php,基本上如果我有这样一个字符串: $str=\data1\data2\data3\data\u tmp\file.pgp 有人能告诉我如何获取最后一部分“file.pgp”吗 蒂亚 您不需要使用foreach的foreach。当您必须遍历整个集合(在您的示例中是数组)时,可以使用它 如果需要获取字符串的剩余部分: $segments = explode('\\', $str); $last = array_pop($segments); 它将以数组的形式出现在$segments中。如果要将其转换

基本上如果我有这样一个字符串:

$str=\data1\data2\data3\data\u tmp\file.pgp

有人能告诉我如何获取最后一部分“file.pgp”吗

蒂亚

您不需要使用foreach的
foreach
。当您必须遍历整个集合(在您的示例中是数组)时,可以使用它

如果需要获取字符串的剩余部分:

$segments = explode('\\', $str);
$last = array_pop($segments);
它将以数组的形式出现在
$segments
中。如果要将其转换回字符串,请使用
join('\\',$segments)
。但是,如果这是一个Windows路径,并且您正在Windows上运行PHP,那么您应该使用
basename
dirname
函数。

您正在寻找该函数

此函数获取文件路径并返回不带后缀的文件名(指定其类型的文件名的最后一部分)

可能会满足您的需要

如果不行,试试看

$path = str_replace('\\', '/', $path)

首先

谢谢。你能告诉我,除了最后一位之外,还有什么方法可以获得剩余的位吗?有趣的是,这似乎只适用于windows环境,正如这里所说:@Tchalvak,这种行为实际上在PHP文档中有记录:它在其他环境中也适用,但只有在使用正常的系统分隔符的情况下。请参阅:php手册中的这句话:“在Windows上,斜杠(/)和反斜杠(\)都用作目录分隔符。在其他环境中,它是正斜杠(/)。@Ignas R。。。谢谢(很抱歉发布了相同的信息,我在发布我的信息后才看到你的评论。
$path = str_replace('\\', '/', $path)