多级 URL 的痕迹导航


breadcrumbs for multi-level url

我想创建多级面包屑,例如如果用户转到Home->Step1->step2->step3页面然后转到Step4:我想查看我的面包屑主页:->step1->step2-step3->->step4。

这是我的代码:

<?php 
    $path = parse_url($_SERVER['HTTP_REFERER'],PHP_URL_PATH);
    $parts = explode('/',$path);
    $stepname='Step'.$step->step_code;
    if (count($parts) < 2)
    {
        echo("home");
    }
    else
    {
        for ($i = 2; $i < count($parts); $i++)
        {
            if (!strstr($parts[$i],"."))
            {
                echo("<a href='"");
                for ($j = 0; $j <= $i; $j++) 
                {
                    echo $parts[$j]."/";
                };
                echo("'">". str_replace('-', ' ', $parts[$i])."</a> » ");
            }
        };
    };  
?>

但它只显示主页>步骤3>步骤4,它不显示步骤2和步骤3。实际上我想要多层次的面包屑。

我建议使用 Yii 内置的 CBreadcrumbs 类。

除此之外,您的if语句中还有逻辑错误。仅当没有其他项目时,才会显示主页。

echo家后搬if

echo("home");
if (count($parts) > 2)
{
...
<?php
# Rewritten Ajmal PraveeN
    $path = parse_url($_SERVER['HTTP_REFERER'],PHP_URL_PATH);
    $parts = explode('/',$path);
    $stepname='Step'.$step->step_code;
    if (count($parts) < 2)
    {
        echo("home");
    }
    else
    {
        for ($i = 0; $i < count($parts); $i++)
        {
            if (!strstr($parts[$i],"."))
            {
                echo("<a href='"");
                for ($j = 0; $j <= $i; $j++) 
                {
                    echo $parts[$j]."/";
                };
                echo("'">". str_replace('-', ' ', $parts[$i])."</a> » ");
            }
        }
    }
?>

上面的代码适用于斜杠目录例如:如果 php 分解路径是/home/website/public 或无限路径级别,脚本会生成您要查找的内容;)我所做的更改$i = 2 $i = 0和 A 建议,而不是str_replace对»使用 CSS 样式

谢谢。。!