2016-05-27 137 views
0

我有一個腳本,列出所有的目錄作爲鏈接。如何突出顯示foreach循環中的當前鏈接

<?php 
$dirs = array_filter(glob('../*'), 'is_dir'); 
?> 

<ul style="float:left;"> 
<?php 
foreach ($dirs as $nav) { 
    echo "<li><a href='$nav'>".basename($nav)."</a></li>"; 
} 
?> 
</ul> 

我想突出顯示當前目錄,或給當前鏈接一個類或id。我知道我需要如果陳述來完成像if(currentLink=thisLink) { // add span class somehow} else {// continue looping}這樣的,但我不完全確定如何做到這一點。

什麼是正確的方法來實現這個?

+0

首先,您需要確定'crrentLink'是什麼以及'thisLink'是什麼,即。要比較的值。 – ArtisticPhoenix

回答

0

,找出你所需要的當前目錄名稱:

中的foreach
basename(getcwd()) 

循環使用:

if(basename($nav) == basename(getcwd())) 
{ 
// add span class 
} 
1

是的,你是對的,你需要的,如果條件在循環。 在循環之前將當前鏈接保存在變量中。

<?php 
$dirs = array_filter(glob('../*'), 'is_dir'); 
?> 

<ul style="float:left;"> 
<?php 
$currentlink='abc'; 
foreach ($dirs as $nav) { 
    if($nav==$currentlink) 
     $class='current'; 
    else 
     $class=''; 
    echo "<li><a class='$class' href='$nav'>".basename($nav)."</a></li>"; 
} 
1

不知道的變量康普艾,語法明智的,你需要做這樣的事情

<?php 
    foreach ($dirs as $nav){ 
     $class = ''; 
     if($currentLink == $thisLink) { 
       $class = 'class="highlight"'; 
     } 
     echo '<li><a href="'.$nav.'" '.$class.' >'.basename($nav).'</a></li>'; 
    } 
?> 

你可以看看在$_SERVER來得到當前的URL在瀏覽器和使用那些與基本名稱填補這些變量。

http://php.net/manual/en/reserved.variables.server.php

0

首先,你必須獲得流通環節。 Store as $ current_link

<?php 
$dirs = array_filter(glob('../*'), 'is_dir'); 
$current_dir = 'store current directory here'; 
?> 

<ul style="float:left;"> 

<?php 
foreach ($dirs as $nav) { 
    if($nav == $current_dir) { 
     $class_name = 'active'; 
    } 
    else { 
     $class = ''; 
    } 
    echo "<li class='$class'><a href='$nav'>".basename($nav)."</a></li>"; 
} 
?> 
</ul> 

希望它能起作用。

相關問題