我想创建多级面包屑,例如如果用户转到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 样式
谢谢。。!