2

私は誰かからこのコードを入手しました。動的なブレッドクラムを作成するのはほぼ完璧ですが、ブレッドクラムの前に 2 つの仕切りがエコーされるため、少し不具合があります。

$crumbs = explode("/",$_SERVER["REQUEST_URI"]);
foreach($crumbs as $crumb){
    echo ucfirst(str_replace(array(".php","_"),array(""," "),'>' . $crumb));
}

それは反響します:

">>コンテンツ>共通>ファイル"

私がそれをどのように見せたいかは

「コンテンツ>共通>1」

また、配列内の最後の項目 (ファイル) を除くすべての項目のリンクを追加する方法を教えていただければ、深く感謝します。

皆さん、どうもありがとうございました。このウェブサイトは、PHP の例を学ぶのに本当に役立ちました!

4

1 に答える 1

2

たぶん、次のようなことができます:

//空の部分を取り除く $crumbs = array_filter($crumbs);

$result = array();
$path = '';
foreach($crumbs as $crumb){
    $path .= '/' . $crumb;
    $name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumb));
    $result[] = "<a href=\"$path\">$name</a>";

}

echo implode(' > ', $result);

更新しました

$result = array();
$path = '';
$num = count($crumbs);
for ($j=0; $j<$num; $j++) {
    $crumb = $crumbs[$j];
    if ($crumb == '') {
        continue;   
    }
    $path .= '/' . $crumb;
    $name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumb));
    if ($j < ($num - 1)) {
        $result[] = "<a href=\"$path\">$name</a>";
    } else {
        $result[] = $name;
    }
}

echo implode(' > ', $result);
于 2010-04-08T10:56:10.397 に答える