Создание подкаталогов с помощью цикла for - PullRequest
0 голосов
/ 13 декабря 2018
 $product_Category = ' Electronics| Computers & Accessories| Monitors ';   

<!-- a simple div with some links --> 
    <div class="breadcrumb-killer flat">
        <a href="index.php" class="active">Home</a>
        <?php 
        $cats = explode("|",  $product_Category);
        for($k = 0; $k < count($cats); $k++) {
            for ($l=0; $l <= $k; $l++) { 
                $folder = permalink($cats[$l])."/" ;
                echo $folder;
            }

            echo '<a href="'.$folder.'">'.$cats[$k].'</a>';
        } 
        ?>
    </div>

У меня есть категории, разделенные разделителем, как - Электроника |Компьютеры и аксессуары |Мониторы

Создаю чистые URL-адреса с помощью этой функции

function permalink($var)
{
    $var = preg_replace('#([\W_]+)#', ' ', $var);
    $var = str_replace(' ', '-', $var);
    $var = strtolower($var);
    $var = rtrim($var, '-');
    $var = ltrim($var, '-'); 
    $var = trim($var);
    return $var;
}

, когда я получаю папку вывода, получая это:

electronics/  electronics/computers-accessories/ electronics/computers-accessories/monitors/

Хотя вы не созданы так, как яхочу .Я ожидаю, что URL будут выглядеть так:

<a href="electronics/">Electronics</a>
<a href="electronics/computers-accessories/">Computers & Accessories</a>
<a href="electronics/computers-accessories/monitors/">Monitors</a>

вот что я получаю:

    <a href="electronics/">Electronics</a>
    <a href="computers-accessories/"> Computers &amp; Accessories</a>
    <a href="monitors/"> Monitors</a>

1 Ответ

0 голосов
/ 13 декабря 2018

Только что осознал мою ошибку - внутренним циклом for является сложение различных частей вместе, но это не добавление их, а просто их замена, вам нужно сбросить его и добавить каждый сегмент при использовании .= ...

    $folder = "";
    for ($l=0; $l <= $k; $l++) { 
        $folder .= permalink($cats[$l])."/" ;
        // echo $folder;
    }
...