douliudong8108 2014-01-27 19:04
浏览 74
已采纳

基于带链接的URL的面包屑(PHP,HTML,Codeigniter)

I'm makeing dynamic bredcrumbs based on current url i have. My problem is, that i can't figure out how to generate right link and attach it to word, because of foreach loop. My code is realy messy, so i whould realy need a help. Hope you guys can help!

Tnx

Here is my code:

<?php
        $url = current_url();
        $home = "www.homepage.com";
        $sub_url = substr($url, strpos($url, $home));
        $segments = explode("/", $url);
        $parts = array_slice($segments, 3);
        $count = count($parts);
        $i = 0;
        ?>
       //Don't show breadcrumb on home page
    <?php if (current_url() !== base_url() && current_url() !== base_url() . "home") { ?>
            <div class="breadcrumbs">
                <a href="<?php echo base_url(); ?>"><div class="home">Home</div></a>
                <div class="divider1"></div>
                <?php
                foreach ($parts as $row) {
                    $bread = ucfirst(str_replace("-", " ", str_replace("_", " ", $row)));
                    ?>
                    <div class="level1" style="margin-left: -6px ;">
                       <a href="#"><?php echo $bread." ". $i; ?></a>
                    </div>
                    <?php if ($i < $count - 1) { ?>
                        <div class="divider1"></div>
                        <?php
                    }
                    $i++;
                }
                ?>
            </div>
   <?php }  ?>

EDIT: Right link means if you have url like www.homepage.com/mens_where/mens_jackets/Jacket123

Output should be something like that if i don't consider echo-ing classes in upper code

<a href="www.homepage.com">home</a>
<a href="www.homepage.com/mens_wear">Mens Wear</a>
<a href="www.homepage.com/mens_wear/mens_jackets">Mens jackets</a>
<a href="www.homepage.com/mens_wear/mens_jackets/Jacket123">Jacket123</a>
  • 写回答

2条回答 默认 最新

  • 普通网友 2014-01-27 21:49
    关注

    This is my final solution!

     <?php if (current_url() !== base_url() && current_url() !== base_url() . "home") { ?>
                <div class="breadcrumbs">
                    <?php
                    $segments = $this->uri->segment_array();
                    $last_segment = '';?>
                    <a href="<?php echo base_url(); ?>"><div class="home">Home</div></a>
                    <div class="divider1"></div>
                    <?php
                    foreach ($segments as $segment) {
                        $last_segment .= '/' . $segment;
                        ?>
                     <div class="level1" style="margin-left: -6px ;">
                         <?php
                        echo '<a href="'.base_url() . substr($last_segment,1) . '">' .    ucfirst(str_replace('-', ' ', str_replace('_', ' ', $segment))) . '</a>';
                        ?>
                         </div>
                         <div class="divider1"></div>
                         <?php
                    }
                    ?>
                </div>
            <?php } ?><br>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮