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

报告相同问题?

悬赏问题

  • ¥15 VS2022创建MVC framework提示:预安装的程序包具有对缺少的注册表值的引用
  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义
  • ¥15 嵌入式--定时器使用
  • ¥20 51单片机学习中的问题
  • ¥30 Windows Server 2016利用兩張網卡處理兩個不同網絡
  • ¥15 Python中knn问题
  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题