将路径分成多个路径

时间:2014-01-22 23:48:44

标签: php

我有以下路径:

/Test1/Test2/Test3

有时这条路径可以是:

/Test1/Test2/Test3/Test4/Test5 and so on...

我想做的是采用这条未知路径并将其转换为最终会产生导航网址的部分,例如:

/Test1
/Test1/Test2
/Test1/Test2/Test3
and so on...

很难为您提供任何代码示例,因为我尝试过的许多事情都没有产生任何好结果。

我假设我需要使用/作为分隔符来爆炸()路径,然后以某种方式将它拼接在一起。我真的很茫然。

有人有任何我可以尝试的建议吗?

3 个答案:

答案 0 :(得分:2)

<?php
$path = '/Test1/Test2/Test3/Test4/Test5';

$explode = explode('/', $path);

$count = count($explode);

$res = '';
for($i = 1; $i < $count; $i++) {
    echo $res .= '/' . $explode[$i];
    echo '<br/>';
}

返回:

/Test1
/Test1/Test2
/Test1/Test2/Test3
/Test1/Test2/Test3/Test4
/Test1/Test2/Test3/Test4/Test5

答案 1 :(得分:1)

以下是获取数组片段的方法:

$path = '/Test1/Test2/Test3/Test4/Test5'; // or whatever your path is
$segments = explode('/', ltrim('/',$path));

如果我了解你,那么你想要做的是建立一个类似

的数组
Array(
  [0] => '/Test1'
  [1] => '/Test1/Test2'
  ...
)

所以你可以循环遍历你的数组并构建这个新数组

$paths_from_segments = array();
$segment_count = count($sgements);
$path_string = '';
foreach($sgement as $segment) {
    $path_string .= '/' . $segment;
    $paths_from_segments[] = $path_string;
}
var_dump($paths_from_segments); 

答案 2 :(得分:1)

不完全是你所说的“将它拼接在一起”,但从它的声音中你正在寻找PHP的implode(),反之为explode()

explode("/", "test1/test2");

// result:
// Array
// (
//     [0] => test1
//     [1] => test2
// )

implode("/", Array("test1", "test2"));

// result:
// "test1/test2"