PHP Breadcrumb生成空链接

时间:2016-10-11 05:41:56

标签: php

我正在使用这个简单的代码来生成面包屑:

  <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>

我从PHP Simple dynamic breadcrumb

获得了这个例子

1 个答案:

答案 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;
   }