dongqian3198 2017-02-15 23:50
浏览 22
已采纳

需要帮助我的PHP代码在breadcrumb上获取错误的目录

my php breadcrumb code is below and the problem is, this is my directory

http://domain.com/folder

using the code below i get directory like this

Home » » Folder instead of Home » Folder

i don't know what is wrong in the code

<?php
    $file = basename($_SERVER["PHP_SELF"]);

    $filename = (count(explode('.', $file)) === 1 ? $file : implode('.', array_slice(explode('.', $file), 0, (count(explode('.', $file))-1))));

    $Pages = array(
        $filename => 'Folder'
    );

    $path = $_SERVER["PHP_SELF"];
    $parts = explode('/',$path);
    if (count($parts) < 2)
    {
    echo("home");
    }
    else
    {
    echo ("<a href=\"http://domain.com\">Home</a> &raquo; ");
    for ($i = 1; $i < count($parts); $i++)
        {
        if (!strstr($parts[$i],"."))
            {
            echo("<a href=\"");
            for ($j = 0; $j <= $i; $j++) {echo $parts[$j]."/";};
            echo("\">". str_replace('-', ' ', $Pages[$parts[$i]])."</a> &raquo; ");
            }
        else
            {
            $str = $parts[$i];
            $pos = strrpos($str,".");
            $parts[$i] = substr($str, 0, $pos);
            echo str_replace('-', ' ', $Pages[$parts[$i]]);
            };
        };
    };  
?>

Here's my second code

<?php
    $file = basename("/".$_SERVER["PHP_SELF"]);

    $filename = (count(explode('.', $file)) === 1 ? $file : implode('.', array_slice(explode('.', $file), 0, (count(explode('.', $file))-1))));
    $Pages = array(
        'folder' => 'Folder',
        $filename => 'Folder'
    );

    $path = "/".$_SERVER["PHP_SELF"];
    $parts = explode('/',$path);
    if (count($parts) < 2)
    {
    echo("home");
    }
    else
    {
    echo ("<a href=\"http://domain.com\">Home</a>  ");
    $cnt = count($parts);
    for ($i = 2; $i < $cnt; $i++)
        {
        if (!strstr($parts[$i],"."))
            {
            echo("&raquo; <a href=\"");
            for ($j = 0; $j <= $i; $j++) {echo $parts[$j]."/";};
            echo("\">". str_replace('-', ' ', $Pages[$parts[$i]])."</a> ");
            }
        else
            {
            $str = $parts[$i];
            $pos = strrpos($str,".");
            $parts[$i] = substr($str, 0, $pos);
            echo str_replace('-', ' ', $Pages[$parts[$i]]);
            };
        };
    };  
?>
  • 写回答

1条回答 默认 最新

  • dongxi1965 2017-02-16 05:30
    关注

    Start the for loop which uses $i as index with initial value 2 instead of 1.

    <?php
        $file = basename("/".$_SERVER["PHP_SELF"]);
    
        $filename = (count(explode('.', $file)) === 1 ? $file : implode('.', array_slice(explode('.', $file), 0, (count(explode('.', $file))-1))));
        $Pages = array(
            $filename => 'Folder'
        );
    
        $path = "/".$_SERVER["PHP_SELF"];
        $parts = explode('/',$path);
        if (count($parts) < 2)
        {
        echo("home");
        }
        else
        {
        echo ("<a href=\"http://domain.com\">Home</a>  ");
        $cnt = count($parts);
        for ($i = 1; $i < $cnt; $i++)
            {
            if (!strstr($parts[$i],"."))
                {
                echo("&raquo; <a href=\"");
                for ($j = 0; $j <= $i; $j++) {echo $parts[$j]."/";};
                echo("\">". str_replace('-', ' ', $Pages[$parts[$i]])."</a> ");
                }
            else
                {
                $str = $parts[$i];
                $pos = strrpos($str,".");
                $parts[$i] = substr($str, 0, $pos);
                echo str_replace('-', ' ', $Pages[$parts[$i]]);
                };
            };
        };  
    ?>

    </div>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度