2012-08-07 85 views
0

的中间部分我有这样需要获取路径

apples/oranges/bananas 

我需要在路径中间项的路径,在这种情况下橙子。

这样做的最佳方法是什么?我可以用strpos和SUBSTR做我自己,但我想有一个更好的办法...

+2

你可以尝试使用'explode'和爆炸的斜线。在索引1处获得数组值。 – Matthew 2012-08-07 20:24:50

+1

@Mthethew伟大的思想家想象的一样^ _^ – Neal 2012-08-07 20:25:33

+0

的确如此; P – Bono 2012-08-07 20:25:44

回答

6
$path = explode("/", "apples/oranges/bananas"); 

echo $path[1]; 
3

你可能会爆炸的字符串(假设它),然后得到数组正确的索引。像这样:

$string = "apples/oranges/bananas"; 

$array = explode('/', $string); 

echo $array[1]; //outputs oranges 
0

如果

$path = 'apples/oranges/bananas'; 

你可以这样做:

$dir = basename(dirname($path)); 

,如果你想从字符串的结尾开始,并应在Windows上工作,或者

$dir = preg_match('|/([^/]*)|', $path, $m) ? $m[1] : false; 

如果你想在beginn字符串,并不会在Windows上工作。

+3

变得花俏了吗? – Neal 2012-08-07 20:26:10

0

它总是用2个斜杠分隔3个单词吗?
如果是,你可以尝试:

$mypath = explode('/', 'apple/oranges/bananas'); 
echo $mypath[1]; //gives oranges 
3

只是为了炫耀阵列PHP提领> 5.4

echo explode('/', 'apple/oranges/bananas')[1]; 
+0

语法会让新手感到困惑,但更有经验的编程人员可以理解在这一行上发生的管道/链接的数量。 – 2012-08-07 22:26:24

+0

取决于他们对其他语言的熟悉程度。但否则,同意。当然你必须运行PHP 5.4。 – 2012-08-07 23:12:15