我有一个脚本,将所有目录列为链接。
<?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语句来完成这个if(currentLink=thisLink) { // add span class somehow} else {// continue looping}
,但我不完全确定如何做到这一点。
实现这个的正确方法是什么?
答案 0 :(得分:1)
是的,如果你的循环中有条件,你是对的。 在循环之前将当前链接保存在变量中。
clear color
答案 1 :(得分:1)
在不知道变量的情况下,语法方面你想做类似的事情
<?php
foreach ($dirs as $nav){
$class = '';
if( $currentLink == $thisLink ) {
$class = 'class="highlight"';
}
echo '<li><a href="'.$nav.'" '.$class.' >'.basename($nav).'</a></li>';
}
?>
您可以查看$_SERVER
以获取浏览器中的当前网址,并使用其中一些和基本名称来填充这些变量。
答案 2 :(得分:0)
找出你需要的当前目录名称:
basename(getcwd())
foreach循环中的使用:
if(basename($nav) == basename(getcwd()))
{
// add span class
}
答案 3 :(得分:0)
首先,您必须获得当前链接。存储为$ 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>
希望它能奏效。