Menü per .txt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    Zuletzt geändert von 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?

    Kommentar


    • #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

      Kommentar


      • #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'.

        Kommentar


        • #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
          Zuletzt geändert von impris; 26.04.2005, 16:40.

          Kommentar


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

            Kommentar


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

              Kommentar

              Lädt...
              X