2012-03-14 78 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