php:简单的面包屑解决方案?

时间:2010-10-21 07:38:08

标签: php breadcrumbs

嘿伙计们, 我正在研究一个非常简单的面包屑路径解决方案,但是我有一件小事让我感到烦恼。

路径是例如文件夹/子文件夹/ subsubfolder 我只是拆分PATH,我正在创建它的链接。非常简单。

// breadcrumb path
$crumb = explode("/", PATH);
if (PATH != 'root' && realpath(PATH)) {
    print "<div class='breadcrumbs'>";
    $newpath = '';
    foreach($crumb as $value) {
        $newpath .= $value;
        print "<a href='" . QUERY . $newpath ."'>$value</a> &gt; ";
        $newpath .= '/';
    }
    print "</div>";
}

然而唯一让我烦恼的是面包屑路径看起来像这样:

文件夹&gt;子文件夹&gt;子文件夹&gt;

你能看到&gt;在末尾。即使没有其他子子文件夹,我也会得到这个&gt;箭头。当然它目前设置的方式,但我想不出一个简单的解决方案摆脱最后一个箭头。

谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

你走了:

// breadcrumb path
$crumb = explode("/", PATH);
if (PATH != 'root' && realpath(PATH)) {
    print "<div class='breadcrumbs'>";
    $newpath = '';
    foreach($crumb as $index => $value) {
        $newpath .= $value;
        // is not last item //
        if($index < count($crumb)-1)
            print "<a href='" . QUERY . $newpath ."'>$value</a> &gt; ";
        // it is last item //
        else
            print $value;
        $newpath .= '/';
    }
    print "</div>";
}

还尝试为变量使用更具暗示性的名称。

答案 1 :(得分:0)

将您的代码更改为(未经过测试!):

// breadcrumb path
$crumb = explode("/", PATH);
if (PATH != 'root' && realpath(PATH)) {
    print "<div class='breadcrumbs'>";
    $newpath = '';
    foreach($crumb as $key=>$value) {
        $newpath .= $value;
        print "<a href='" . QUERY . $newpath ."'>$value</a>";
        if($key!= (count($crumb)-1) )print "&gt; "
        $newpath .= '/';
    }
    print "</div>";
}