Peter Brennan
Peter Brennan

Reputation: 35

Create breadcrumb from directory listing

I have created a very simple file directory that shows files from outside of the public html based on the directory URL that is passed to it i.e /home/peter/root_storage/folder_1/folder_2/folder_3

I need to be able to create a breadcrumb from the same string passed and output in array like the following:

array(
  array(
    name => 'root_storage',
    url => '/home/peter/root_storage'
  ),
  array(
    name => 'folder_1',
    url => '/home/peter/root_storage/folder_1'
  ),
  array(
    name => 'folder_2',
    url => '/home/peter/root_storage/folder_1/folder_2'
  ),
  array(
    name => 'folder_3',
    url => '/home/peter/root_storage/folder_1/folder_2/folder_3'
  )
)

Any direction would be appreciated.

Upvotes: 0

Views: 144

Answers (1)

Rasclatt
Rasclatt

Reputation: 12505

Not sure exactly if this is what you are meaning to do:

$str    =   '/home/peter/root_storage/folder_1/folder_2/folder_3';
$all    =   array_filter(explode('/',$str));

$accume =   '';
$i  =   0;
foreach($all as $dir) {
    $accume     .=  $dir.'/';
    $new[$i][]  =   $dir;
    $new[$i][]  =   $accume;
    $i++;
}

print_r($new);

Gives you:

Array
(
    [0] => Array
        (
            [0] => home
            [1] => home/
        )

    [1] => Array
        (
            [0] => peter
            [1] => home/peter/
        )

    [2] => Array
        (
            [0] => root_storage
            [1] => home/peter/root_storage/
        )

    [3] => Array
        (
            [0] => folder_1
            [1] => home/peter/root_storage/folder_1/
        )

    [4] => Array
        (
            [0] => folder_2
            [1] => home/peter/root_storage/folder_1/folder_2/
        )

    [5] => Array
        (
            [0] => folder_3
            [1] => home/peter/root_storage/folder_1/folder_2/folder_3/
        )

Upvotes: 1

Related Questions