Mief: txt-Datenbank auslesen

Hallo Leute,
ich habe auf meiner Website eine Navigationsleiste. Jedoch will ich die nicht einfach so per HTML dahin schreiben, sondern mit PHP die einzelnen Punkte mit URI aus einer Datenbank lesen und dahin schreiben. Da MySQL auf meinem Rechner nicht so richtig laufen will, habe ich mir gedacht einfach die Daten in einer .txt-Datei zu speichern. Die Daten will ich von Hand in die Datei schreiben und mit php nur auslesen. Jetzt weiß ich allerdings nicht, wie ich die Daten auslese. Die Daten sind so gespeichert: "Name|URL"
Danke schon mal im voraus.

  1. Hallo,

    [...] habe ich mir gedacht einfach die Daten in einer .txt-Datei zu speichern.

    warum nicht SQLite (in PHP typischerweise integriert) nutzen?

    Die Daten will ich von Hand in die Datei schreiben und mit php nur auslesen. Jetzt weiß ich allerdings nicht, wie ich die Daten auslese. Die Daten sind so gespeichert: "Name|URL"

    In diesem Fall nähme ich fgetcsv() mit einem geeigneten Separator (|).

    Freundliche Grüße

    Vinzenz

    1. warum nicht SQLite (in PHP typischerweise integriert) nutzen?

      SQLite nehme ich nicht, weil ich damit nicht ganz klar komme. :)

      In diesem Fall nähme ich fgetcsv() mit einem geeigneten Separator (|).

      Wie gibt man das dann in PHP aus? Die Daten sollen als HTML-Liste ausgegeben werden. Wie das geht habe ich noch nicht verstanden. :)

      1. Om nah hoo pez nyeetz, Mief!

        Andere Variante:

        Du schreibst deine Daten in ein PHP-Array

        $monat[1] = array ('Jan', 'Januar', 31);  
        $monat[2] = array ('Feb', 'Februar', 29);  
        $monat[3] = array ('Mrz', 'März', 31);  
        $monat[4] = array ('Apr', 'April', 30);  
        $monat[5] = array ('Mai', 'Mai', 31);  
        $monat[6] = array ('Jun', 'Juni', 30);  
        $monat[7] = array ('Jul', 'Juli', 31);  
        $monat[8] = array ('Aug', 'August', 31);  
        $monat[9] = array ('Sep', 'September', 30);  
        $monat[10] = array ('Okt', 'Oktober', 31);  
        $monat[11] = array ('Nov', 'November', 30);  
        $monat[12] = array ('Dez', 'Dezember', 31);
        

        und kannst dann per $monat[5][1] beispielsweise auf "Mai" zugreifen.

        Diese Datei könntest du includieren.

        Matthias

        --
        1/z ist kein Blatt Papier.

        1. Hello,

          Om nah hoo pez nyeetz, Mief!

          Andere Variante:

          Du schreibst deine Daten in ein PHP-Array

          $monat[1] = array ('Jan', 'Januar', 31);

          $monat[2] = array ('Feb', 'Februar', 29);
          $monat[3] = array ('Mrz', 'März', 31);
          $monat[4] = array ('Apr', 'April', 30);
          $monat[5] = array ('Mai', 'Mai', 31);
          $monat[6] = array ('Jun', 'Juni', 30);
          $monat[7] = array ('Jul', 'Juli', 31);
          $monat[8] = array ('Aug', 'August', 31);
          $monat[9] = array ('Sep', 'September', 30);
          $monat[10] = array ('Okt', 'Oktober', 31);
          $monat[11] = array ('Nov', 'November', 30);
          $monat[12] = array ('Dez', 'Dezember', 31);

          
          >   
          > und kannst dann per `$monat[5][1]`{:.language-php} beispielsweise auf "Mai" zugreifen.  
          >   
          > Diese Datei könntest du [includieren](http://de.php.net/manual/de/function.include.php).  
            
          ... oder eben, wie Vinzenz schon erwähnt hat, ganz normal einlesen.  
            
            
          Inhalt der Datei:  
            
          'Jan','Januar',31;  
          'Feb','Februar',29;  
          'Mrz','März',31;  
          'Apr','April',30;  
          'Mai','Mai',31;  
          'Jun','Juni',30;  
          'Jul','Juli',31;  
          'Aug','August',31;  
          'Sep','September',30;  
          'Okt','Oktober',31;  
          'Nov','November',30;  
          'Dez','Dezember',31;  
            
            
          Einlesen mit fgetcsv:  
            
          $\_monate = array();  
          $\_record = array();  
            
          ## Datei öffnen  
          $fh = fopen($dateiname,'rb');  
            
          ## wenn Öffnung geklappt hat,  
          if ($fh)  
          {  
              ## Datei sperren gegen Veränderung durch Andere  
              flock($fh, LOCK\_SH);  
            
              ## Datei Satzweise auslesen. <http://de.php.net/manual/en/function.fgetcsv.php>  
              while ($\_record = fgetcsv($fh, 4096, ",", "'"))  
              {  
                  ## Datensatz an großes Array (Liste) anhängen  
                  $\_monate[] = $\_record;  
              }  
          {  
            
          ## Datei wieder schließen  
          fclose($fh);  
            
          ## und dann zur Kontrolle mal die Liste ausgeben:  
            
          echo "<pre>\r\n";  
          echo htmlspecialchars(print\_r($\_monate,1));  
          echo "</pre>\r\n";  
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
          Liebe Grüße aus dem schönen Oberharz  
            
            
          Tom vom Berg  
          ![](http://selfhtml.bitworks.de/Virencheck.gif)  
            
          
          -- 
           ☻\_  
          /▌  
          / \ Nur selber lernen macht schlau  
          <http://bergpost.annerschbarrich.de>
          
          1. Hello,

            Hello,

            Om nah hoo pez nyeetz, Mief!

            Andere Variante:

            Du schreibst deine Daten in ein PHP-Array

            $monat[1] = array ('Jan', 'Januar', 31);

            $monat[2] = array ('Feb', 'Februar', 29);
            $monat[3] = array ('Mrz', 'März', 31);
            $monat[4] = array ('Apr', 'April', 30);
            $monat[5] = array ('Mai', 'Mai', 31);
            $monat[6] = array ('Jun', 'Juni', 30);
            $monat[7] = array ('Jul', 'Juli', 31);
            $monat[8] = array ('Aug', 'August', 31);
            $monat[9] = array ('Sep', 'September', 30);
            $monat[10] = array ('Okt', 'Oktober', 31);
            $monat[11] = array ('Nov', 'November', 30);
            $monat[12] = array ('Dez', 'Dezember', 31);

            
            > >   
            > > und kannst dann per `$monat[5][1]`{:.language-php} beispielsweise auf "Mai" zugreifen.  
            > >   
            > > Diese Datei könntest du [includieren](http://de.php.net/manual/de/function.include.php).  
            >   
            > ... oder eben, wie Vinzenz schon erwähnt hat, ganz normal einlesen.  
            >   
            
            Und wenn man die abschließenden Semikola noch weglässt, könnte es sogar richtig sein :-O  
            Inhalt der Datei:  
              
            'Jan','Januar',31  
            'Feb','Februar',29  
            'Mrz','März',31  
            'Apr','April',30  
            'Mai','Mai',31  
            'Jun','Juni',30  
            'Jul','Juli',31  
            'Aug','August',31  
            'Sep','September',30  
            'Okt','Oktober',31  
            'Nov','November',30  
            'Dez','Dezember',31  
            
            >   
            >   
            > Einlesen mit fgetcsv:  
            >   
            > $\_monate = array();  
            > $\_record = array();  
            >   
            > ## Datei öffnen  
            > $fh = fopen($dateiname,'rb');  
            >   
            > ## wenn Öffnung geklappt hat,  
            > if ($fh)  
            > {  
            >     ## Datei sperren gegen Veränderung durch Andere  
            >     flock($fh, LOCK\_SH);  
            >   
            >     ## Datei Satzweise auslesen. <http://de.php.net/manual/en/function.fgetcsv.php>  
            >     while ($\_record = fgetcsv($fh, 4096, ",", "'"))  
            >     {  
            >         ## Datensatz an großes Array (Liste) anhängen  
            >         $\_monate[] = $\_record;  
            >     }  
            > {  
            >   
            > ## Datei wieder schließen  
            > fclose($fh);  
            >   
            > ## und dann zur Kontrolle mal die Liste ausgeben:  
            >   
            > echo "<pre>\r\n";  
            > echo htmlspecialchars(print\_r($\_monate,1));  
            > echo "</pre>\r\n";  
            >   
            >   
            >   
            >   
            >   
            >   
            >   
            >   
            >   
            >   
            >   
            >   
            >   
            >   
            >   
            > Liebe Grüße aus dem schönen Oberharz  
            >   
            >   
            > Tom vom Berg  
            > ![](http://selfhtml.bitworks.de/Virencheck.gif)  
            >   
            >   
            
            Liebe Grüße aus dem schönen Oberharz  
              
              
            Tom vom Berg  
            ![](http://selfhtml.bitworks.de/Virencheck.gif)  
              
            
            -- 
             ☻\_  
            /▌  
            / \ Nur selber lernen macht schlau  
            <http://bergpost.annerschbarrich.de>