Menü per .txt

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Menü per .txt

    Hi

    Ich habe vor ein Menü zu machen, dessen kompletter Inhalt in einer TXT steht. Wie hier z.B.:

    Code:
    #kopftext1
    knopf1|datei1.php
    knopf2|datei2.php
    knopf3|datei3.php
    #kopftext2
    knopf1|datei1.php
    knopf2|datei2.php
    knopf3|datei3.php
    Dieser TXT ernhält also das komplete Menü, welches Listenartig aufgebaut ist. Der Vorteil ist ja klar, man kann das Menü jederzeit in sekundenschnelle erweitern. Das ist in diesem Fall sehr hilfreich, aufgrund von Java etc..

    Die Textdatei öffne ich per
    PHP Code:
    $lines file("menu.txt"); 
    Dann geht es darum, den ersten Buchstaben jeder Zeile zu überprüfen. Ist es ein #, so wird das # entfernt und der Rest der Zeile als eine Listenüberschrift eingefügt. Bei einem Wort kann ich den ersten Buchstaben lesen und abfragen per
    PHP Code:
    if($wort[0] = '#') .. 
    .

    Aber wenn ich die Datei mit dem ersten der beiden Befehle öffne und lesen, dann wäre
    PHP Code:
    $lines[0
    jedoch nicht der erste Buchstabe, sondern die erste Reihe in der Textdatei, oder?
    Wie also kann ich die Variablen der Reihe und des ersten Buchstaben zu einer zusammenfassen?

    Ich hatte es bis jetzt so versucht:
    PHP Code:
    $lines file("menu.txt"); // ließt datei aus
    $anzahl count(if $lines{0} = '#'); // zählt zeilen wo # anfangszeichen ist
    $count 0;
    while(
    $count <= $anzahl) { // wiederhole bis alle #-zeilen durch sind
    if($lines{0} = '#') { // nehme die #-zeile als kopf, alle darunter folgenden ->
                          // bis zum nächsten #-zeichen oder dateiende als listenpunkte
     // ausgabe der liste
    $count++;
    }

    Es funktioniert leider nicht. Ich beschäftige mich auch noch nicht lange mit PHP , bin also sehr unerfahren. Hilfe wäre nett! Danke schonma

    MfG
    Impris
    Last edited by impris; 26-04-2005, 15:03.

  • #2
    brich den code um!
    http://www.php-resource.de/forum/sho...threadid=50454

    muss es unbedingt eine text-datei sein? hast du keinen zugriff auf eine datenbank?

    Comment


    • #3
      ne, ich habe kein datenbank zur verfügung.

      und damit man den inhalt der seite jederzeit schnell und einfach ändern kann wollte ich ihn so weit möglich in TXT datein schreiben. damit ich wenn ich was ändern will mich nicht durch endlosen quelltext quälen muss
      das ziel der seite ist dass sie extrem dynamisch (aber halt ohne datenbank) wird, so dass man den inhalt der seite praktisch in wenigen minuten komplet ändern kann.

      so verwalte ich z.b. auch das design der kompleten seite in einer CSS datei (ausser den bildern). nur das is einiges leichter als php

      Comment


      • #4
        PHP Code:
        $anzahl count(if $lines{0} = '#'); 
        was soll'n das bewirken?

        was du brauchst, sind arrays, file(), count(), explode() und ein paar logische strukturen.

        fasse den programmablauf in worte, bevor du 'loscodest'.

        Comment


        • #5
          ok, ich habs jetzt nochmal überarbeitet ..

          PHP Code:
          <?php

          $lines 
          file("menu.txt");

          for(
          $i 0$i count($lines); $i++){
           
          $element explode("|",$lines[$i]);
            if(
          $element[0] == "#"){
             echo 
          $element[1]; // wäre dann der kopf der liste
            
          }
            else {
             echo 
          $element[0als link auf $element[1]; // wäre dann ein punkt der liste
            
          }
          }

          ?>
          wie sieht das aus?

          PS: damit es geht muss man in der menu.txt natürlich in den #-zeilen die # mit einem | vom kopftext trennen
          Last edited by impris; 26-04-2005, 16:40.

          Comment


          • #6
            mach ma
            PHP Code:
            $cnt count($lines);
            for(
            $i 0$i $cnt$i++){ 
            .

            Comment


            • #7
              He jo! So gehts! Vielen Dank!!

              Comment

              Working...
              X