php: inhaltsverzeichnis nummerieren ..



  • hi,

    ich habe eine textdatei mit einem inhaltsverzeichnis drin.
    die themen sind in einer gewissen hierarchie mit hife von tab's aufgelistet.

    ausschnitt aus cpp_index.txt:

    Titel
        Irgendwas
        Irgendwas
            Irgendwas
            Irgendwas
        Irgendwas
    Titel
        Irgendwas
            Irgendwas
            Irgendwas
            Irgendwas
        Irgendwas
    usw..
    

    das bekomme ich mit dem script auch wunderbar in ein html-format (vom aussehen her wie:
    http://selfhtml.teamone.de/html/text/anzeige/ul_ul.htm

    nur leider fehlt mir die passende nummerierung.
    die nummerierung sollte folgendermaßen aussehen:

    1 Titel
        1.1 Irgendwas
        1.2 Irgendwas
            1.2.1 Irgendwas
            1.2.2 Irgendwas
        1.3 Irgendwas
    2 Titel
        2.1 Irgendwas
            2.1.2 Irgendwas
            2.1.3 Irgendwas
            2.1.4 Irgendwas
        2.2 Irgendwas
    usw..
    

    ich weis einfach nicht wie ich das anstellen soll ..
    so sieht mein php-script aus:

    <ul>
    <?php
        $f      = file ('cpp_index.txt');
        $tmptab = 0;
    
        while (list ($line_count, $line) = each ($f)) {
            $tab = substr_count($line, "\t");
    
            if ($tab > $tmptab) {
                echo "<ul><li>$n $line";
                $tmptab++;
            }
            else {
                if ($tab < $tmptab) {
                    echo "</ul><li>$n $line";
                    $tmptab--;
                }
                else {
                    echo "<li>$n $line";
                }
            }
        }
    ?>
    </ul>
    

    mich würde interessieren was ihr dazu sagt. ich habe echt schon den ganzen tag hier herumprobiert und keine lösung gefunden ..

    vielen dank für eure mühe 😉
    gruß,
    christian



  • hi chris...

    is ja ne nette denkaufgabe.. habe es über deins rübergeschrieben.. musst jetzt wieder die tabs mit li reintun..

    <html>
    <body>
    <?php
     $handle=fopen("test.txt", "a+");
        $select1 = "\t";
        $select2 = "\t\t";
        $zahl0=1;
        $zahl1=0.1;
        $zahl2=0.01;
         while($line=fgets($handle,1000)){
    
            if (ereg ($select2, $line)){
                echo $zahl2." ".$line."<br>";
                $zahl2+=0.01;
            }else if (ereg ($select1, $line)){
                echo $zahl1." ".$line."<br>";
                $zahl1+=0.1; 
                $zahl2+=0.1;
            }else{
                echo $zahl0." ".$line."<br>";
    
                $zahl1=$zahl0 + 0.1;             
                $zahl2=$zahl0 + 0.01;
                $zahl0+=1;
            }  
        }   
     fclose($handle);   
    ?>
    <ul>
    <?php
        $f      = file ('test.txt');
        $tmptab = 0;
    
        while (list ($line_count, $line) = each ($f)) {
            $tab = substr_count($line, "\t");
    
            if ($tab > $tmptab) {
                echo "<ul><li>$n $line";
                $tmptab++;
            }
            else {
                if ($tab < $tmptab) {
                    echo "</ul><li>$n $line";
                    $tmptab--;
                }
                else {
                    echo "<li>$n $line";
                }
            }
        }
    ?>
    </ul>
    </body>
    </html>
    

    [ Dieser Beitrag wurde am 19.09.2002 um 17:44 Uhr von elise editiert. ]



  • oaahh elise!!

    das sieht nicht nur gut aus, das funktioniert sogar 😃
    dank dir für deine mühe! is echt super 🙂 *lob*

    ich steh auf frauen 😉
    danke und bis bald ...

    gruß,
    christian



  • Original erstellt von <christian>:
    **oaahh elise!!

    das sieht nicht nur gut aus, das funktioniert sogar 😃
    dank dir für deine mühe! is echt super 🙂 *lob*

    ich steh auf frauen 😉
    ...

    **

    öhm.. hat nun nix mit frauen zu tun.. obwohl ich eine bin ... aber egal..
    hauptsache es funzt 😉

    [ Dieser Beitrag wurde am 19.09.2002 um 23:45 Uhr von elise editiert. ]



  • > hat nun nix mit frauen zu tun
    so wars nicht gemeint .. tschuldige 😉


Anmelden zum Antworten