2016-12-13 5 views
0

新しいホスティングコントロールパネルインターフェイス用のファイルマネージャスクリプトを作成中です。ユーザがクリックしてブレッドクラムを作成して、その前のパスに戻ることができます。これまでのところ、彼らはこのリンク先のフォルダが前のフォルダに戻る

navbits

のように私は考え大丈夫ルックスに表示されます。最初の3つのリンクは静的なもので、決して変更されません。ユーザーが移動するより遠くに行くほど、リンクがブレッドクラムに追加されます。

/filemanager.php?do=browse&dir=www/usr

はその後、我々は区切らすべての項目間$_GET['dir']を爆発/及び配列にそれらを追加します。私たちはここに別名/home/www/usr/ているようにあなたがディレクトリにあった場合は今、その後のURLは次のようになります。その後、配列をループして、foreachを表示し、<li>$i</li>をブレッドクラム領域に出力します。

問題は今、メニュー内の各項目のリンクを親フォルダとそれがある場合はどうすればできますか?この例ではユーザーがwwwをクリックすると、名前と同じリンクであるために動作しますが、いずれの子でもliにはwww /がフロントに追加されている必要があります。ここでちょっと困った。

は、ここで私たちが使用しているLI追加するプロセスです:

if(isset($_GET['dir']) && !empty($_GET['dir'])) { 
    $breadcrumb_list = array(); 
    $breadcrumb_list = explode("/", $_GET['dir']); 
    echo "<li><a href=\"filemanager?do=browse\">Home</a></li>\n"; 
    foreach($breadcrumb_list as $i) { 
     echo "<li><a href=\"filemanager?do=browse&amp;dir={$i}\">{$i}</a></li>\n"; 
    } 
} 

任意およびすべてのヘルプは理解されるであろう!みんなありがとう!

答えて

1

foreachループは、パスの現在の一部を追加し、すべての反復で次に新しい変数例えば

$path = ''; 

を作成する前に、次のような

$path .= '/'.$i; 

だから、意志ルックス:

$path = ''; 
foreach($breadcrumb_list as $i) { 
    $path .= '/'.$i; 
    echo "<li><a href=\"filemanager?do=browse&amp;dir={$path}\">{$i}</a></li>\n"; 
} 
関連する問題