php - 面包屑菜单 PHP 生成额外的空白锚链接
问题描述
假设我有以下网址:
https://site.website/products/products-level-2
在products-level-2
我有一个面包屑英雄部分。我期待看到的是:
Products / Products Level 2
但是,以我目前的方法,我看到:
/ Products / Products Level 2 /
^^ 上面的 HTML 输出如下:
<!-- link 1 - not needed -->
<a class="crumbMenu" href="site.website"> </a>
<span class="slash">/</span>
<!-- link 2 -->
<a class="crumbMenu" href="site.website//products">Products </a>
<span class="slash">/</span>
<!-- link 3 -->
<a class="crumbMenu" href="site.website//products/products-level-2">Products Level 2</a>
<span class="slash">/</span>
<!-- link 4 - not needed -->
<a class="crumbMenu" href="site.website//products/products-level-2"> </a>
<span class="slash">/</span>
以上有以下问题:
- 它正在输出空白/不需要的锚链接。
- 在href中,它输出双
//
(即site.website//products
) - 我也不希望最后一项(即
products level 2
)成为链接(因为用户正在查看该页面上的面包屑)。 - 我不想
/
出现在面包屑的开头和结尾。
这是我目前的方法:
<?php
// 1. Get URL
$crumbs = explode("/",$_SERVER["REQUEST_URI"]);
$address = $_SERVER['HTTP_HOST'];
// 2. Strip extras
$build = '';
foreach($crumbs as $crumb){
$build .= '/'.$crumb;
$crumb = ucfirst(str_replace(array(".php","_"),array(""," "),$crumb) . ' ');
echo
"<a class='crumbMenu' href=".$address.$build.">".$crumb."</a>
<span class='slash'>/</span> ";
}
?>
解决方案
要解决 1,2,4,只需删除前导和尾随斜杠。要解决 3,您需要做一个简单的 if:
// 1. Get URL
$crumbs = explode("/", trim($_SERVER["REQUEST_URI"], '/'));
$address = $_SERVER['HTTP_HOST'];
// 2. Strip extras
$build = '';
$lastKey = count($crumbs) - 1;
foreach($crumbs as $key => $crumb){
$build .= '/'.$crumb;
$crumb = ucfirst(str_replace(array(".php","_"),array(""," "),$crumb) . ' ');
echo $key < $lastKey
? "<a class='crumbMenu' href=".$address.$build.">".$crumb."</a>
<span class='slash'>/</span>"
: $crumb;
}
推荐阅读
- javascript - React Firebase - 未捕获的异常signInWithEmailAndPassword,电子邮件必须是有效的字符串
- python - 如何在 Python 中将阿拉伯文本转换为数字
- javascript - 将以下反应代码转换为 JSX
- ios - 当用户在“设置”应用中更改推送通知设置时如何获得通知?
- java - Anaconda 我无法在没有错误 JAVA_HOME.sh = not found 的情况下切换环境?
- c# - 在非常简单的属性更新期间,Okta 的“请求正文格式不正确”
- android - 使用 gradlew assembleRelease 从本机反应创建发布 apk 时出错
- javascript - 基于laravel刀片中属性值的条件语句
- c# - 在 MVC Web 应用程序中计算员工的剩余假期天数?
- reactjs - 尝试创建新的 React 应用程序时出现错误 404