我将此处找到的代码用于我的网站的动态 php 面包屑。效果很好!但是,如果我将文件夹嵌套超过 1 层,则会导致错误。
这是我目前用于面包屑的代码。
<?php
function breadcrumbs($separator = ' » ', $home = 'Home') {
$path = array_filter(explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
$base = ($_SERVER['HTTPS'] ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/';
$breadcrumbs = Array("<a href=\"$base\">$home</a>");
$last = end(array_keys($path));
foreach ($path AS $x => $crumb) {
$title = ucwords(str_replace(Array('.php', '_'), Array('', ' '), $crumb));
if ($x != $last)
$breadcrumbs[] = "<a href=\"$base$crumb\">$title</a>";
else
$breadcrumbs[] = $title;
}
return implode($separator, $breadcrumbs);
}
?>
You are here: <?= breadcrumbs(' ♥ ') ?>
最容易看到现场示例的地方是这里。如果单击面包屑上的第三个链接,它将忽略第二个嵌套文件夹。我不知道足够多的 PHP 来解决问题以及如何解决它。我认为理想情况下它会监视 url 中的嵌套文件夹。