我想创建多级面包屑,就像如果用户转到主页-〉步骤1-〉步骤2-〉步骤3页面,然后转到步骤4:我想看看我的面包屑主页:-〉步骤1-〉步骤2-〉步骤3-〉-〉步骤4.
下面是我的代码:
<?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。实际上我想要多级面包屑。
2条答案
按热度按时间3j86kqsm1#
我推荐使用内置在CBreadcrumbs类中的Yii。
此外,您的
if
语句中存在逻辑错误,只有在没有其他项目的情况下,才会显示Home。将
if
移到echo
起始位置之后:uklbhaso2#
上面的代码可以很好地处理斜杠目录,例如:如果php分解出的路径是/home/website/public或Infinite路径级别,脚本会生成你要找的内容;)我所做的更改是将
$i = 2
更改为$i = 0
,并建议对»
使用CSS样式,而不是str_replace谢谢您的评分