2012-03-14 81 views
1

我有一個像$path = "dir1/dir2/dir1/dir4/";等。等變量..刪除根目錄 - PHP

我想刪除第一個成員dir1/,並希望類似結果dir2/dir1/dir4/

我認爲這是可能的通過使explode('/', $path)變量數組。我怎樣才能刪除第一個成員的vrom數組並重建該數組爲一個文本變量?

我該如何在PHP中實現這一目標?

回答

5

根據您更新的問題

只爆炸成兩個部分,採取第二個。在第二個不存在的情況下,給它NULL

list(, $result) = explode("/", $path, 2) + array(1 => NULL); 

OR

$array = explode("/", $path); 
unset($array[0]); 
echo $text = implode("/", $array); 
+0

@blasteralfred你爲什麼選擇3行與正則表達式在一條簡單的線上? – meze 2012-03-14 06:50:48

+0

@meze:regexp比這些函數慢,你也可以在一行代碼中轉換這三行代碼 – 2012-03-14 07:15:51

+0

你怎麼知道regexp比這些行慢?正則表達式並不總是很慢。在某些情況下,regexp會比這三行更快。而且你不能將它轉換成一行代碼。 – meze 2012-03-14 07:26:20

4
preg_replace('~^[^/]+/~', '', $path); 

,或者如果你不想正則表達式:

substr($path, strpos($path, '/') + 1); 
0

你可以做這樣的 $結果=爆炸( 「/」,$ PATH);. 您將以數組形式獲得結果。

+0

修訂的問題.. – 2012-03-14 06:37:40

+0

沙克蒂·辛格的答案是正確的呢。 – heyanshukla 2012-03-14 07:20:20

1
$result = explode("/", $path); // Pull it apart 
array_shift($result); // Pop the first index off array 
$result = implode("/", $result); // Put it together again