2012-03-14 2 views
1

У меня есть переменная, как $path = "dir1/dir2/dir1/dir4/"; и т.д .. и т.д ..Удалить корневой каталог из строки пути каталога - PHP

Я хочу удалить первый элемент dir1/ и хочу привести как dir2/dir1/dir4/.

Я думаю, что можно сделать переменную массив на explode('/', $path). Как я могу удалить первый элемент vrom array и восстановить этот массив в текстовой переменной?

Как я могу достичь этого в PHP?

ответ

5

В соответствии с обновленным вопросом

только взрывается на две части, возьмите вторую. В случае, если второй один не существует, дайте ему NULL:

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

ИЛИ

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

@blasteralfred Почему вы выбрали 3 строки над одной простой строкой с регулярным выражением? – meze

+0

@meze: regexp медленны, чем эти функции, и вы также можете преобразовать эти три строки в одну строку кода –

+0

, откуда вы знаете, что регулярное выражение медленнее, чем эти строки? Regexp не всегда медленный. В некоторых случаях regexp будет быстрее, чем эти три строки. И вы не можете преобразовать его в одну строку кода. – meze

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

или если вы не хотите, регулярное выражение:

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

Вы можете сделать, как этот $ результат = взорваться ("/", $ пути) ;. Вы получите результат как массив.

+0

пересмотрела вопрос .. –

+0

ответ Шакти Сингха прямо тогда. – heyanshukla

1
$result = explode("/", $path); // Pull it apart 
array_shift($result); // Pop the first index off array 
$result = implode("/", $result); // Put it together again 
Смежные вопросы