2012-08-07 111 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