【问题标题】:Breadcrumbs with links back to previous folder带有返回上一个文件夹的链接的面包屑
【发布时间】:2016-12-13 23:00:34
【问题描述】:

今天,我们正在为我们的新主机控制面板界面制作文件管理器脚本,我们希望制作用户可以单击以返回到之前的路径的面包屑。到目前为止,他们是这样出现的

我想看起来不错。前三个链接是静态的,永远不会改变,用户去的/home 越远,添加到面包屑的链接就越多。现在,如果您在我们这里的目录中,也就是 /home/www/usr/,那么 url 看起来像这样:

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

然后我们将$_GET['dir'] 分解为由/ 分隔的所有项目之间,并将它们添加到一个数组中。然后我们循环遍历数组和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";
    }
}

我们将不胜感激任何和所有的帮助!谢谢大家!

【问题讨论】:

    标签: php html arrays get


    【解决方案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";
    }
    

    【讨论】:

      猜你喜欢
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-12
      • 2018-05-09
      相关资源
      最近更新 更多