我正在使用这个简单的代码来生成面包屑:
<ul class="breadcrumb">
<?php
$crumbs = explode("/",$_SERVER["REQUEST_URI"]);
foreach($crumbs as $crumb){
echo ' <li>';
echo '<a href="'.$crumb.'">';
echo ucfirst(str_replace(array(".php","_"),array(""," "),$crumb) . '');
echo '</a>';
echo '<span class="divider">/</span></li>' . PHP_EOL;
}
?>
</ul>
现在我的网址是http://example.com/gallery.php
。
由于某种原因,此脚本正在为gallery.php
生成空锚标记和锚标记。
有人能告诉我为什么会生成一个空锚标签吗?
实际输出是:
<ul class="breadcrumb">
<li><a href=""></a><span class="divider">/</span></li>
<li><a href="gallery.php">Gallery</a><span class="divider">/</span></li>
</ul>
获得了这个例子
答案 0 :(得分:3)
因为explode("/", "/asd/ddd")
返回["", "asd", "ddd"]
添加if语句将起作用。
foreach($crumbs as $crumb){
if(!$crumb) continue;
echo ' <li>';
echo '<a href="'.$crumb.'">';
echo ucfirst(str_replace(array(".php","_"),array(""," "),$crumb) . '');
echo '</a>';
echo '<span class="divider">/</span></li>' . PHP_EOL;
}