PHP Простая модификация / исправление - PullRequest
2 голосов
/ 08 апреля 2010

Я получил этот код от кого-то, он почти идеален для создания динамической хлебной крошки, но есть небольшой сбой, потому что он повторяет два делителя перед хлебной крошкой:

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

это повторяет:

">> content> common> file"

я хочу, чтобы это выглядело как

"содержание> общего> 1"

и я также буду признателен, если кто-нибудь скажет мне, как я могу добавить ссылки для всех элементов в массиве, кроме последнего (файла)?

Большое спасибо всем, этот сайт очень помог мне выучить php на примерах!

1 Ответ

2 голосов
/ 08 апреля 2010

Может быть, что-то вроде этого подойдет:

// избавиться от пустых частей $ 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);
...