auslesen von daten (text-datei)..

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

  • auslesen von daten (text-datei)..

    Hallo!
    bräcuhte mal einen rat bzw. die hilfe von euch und zwar versuch meine ersten gehversuche mit php was nicht ganz einfach ist, hab mich jetzt nach einem tutorial für ein gästebuch gerichtet und wollte es modifizieren da die text datei von vorne ausgelesen wurde, was ja nicht falsch ist, doch die neuest beiträge wurden immer hinten angehangen so das diese auch immer als letztes da stehen würden, würde das ganze gerne umgekehrt haben als als erstes letzter eintrag und am ende den allerersten.
    der code zum speicher in der text-datei:

    PHP-Code:
    <? 
    $daten="Name:&nbsp;<a href=mailto:$email>$name</a>&nbsp;
    &nbsp;|&nbsp;&nbsp;Homepage:&nbsp;
    <a href=http://$hp target=_blank>$hp</a>
    &nbsp;&nbsp;|<br><br><u>Message:</u><br><br>$eintrag<br><hr><br>";

    $datenbank = "daten.dat";
    $datei = fopen($datenbank,"a");
    fwrite($datei, $daten);
    ?>

    der code zum auslesen:

    PHP-Code:
    <?php $datenbank "daten.dat"
    $datei fopen($datenbank,"r"); 
    fpassthru($datei); ?>
    Vielen Dank für eure Hilfe!
    EDIT:
    linebreak sponsored by asp2php. Bitte zukünftig selbst dafür sorgen, dass man beim lesen nicht scrollen muss
    Zuletzt geändert von asp2php; 04.11.2004, 08:42.

  • #2
    ein blick ins manual (fopen) hilft dir weiter. fopen($xxx," a") setzt den dateizeiger an das ende der datei und das willst du ja nicht.

    Kommentar


    • #3
      hab ich gemacht.
      aber ich find da kein befehl der den zeiger am anfang der datei setzt und die vorhanden
      nicht überschreibt. alles was ich probiert hab war bei fopen, aber immer wurden vorhandenen datensätze wieder überschrieben mit dem neuen, in einem gästebuch sollte da sja auch nicht sein. sonst hätte ich das hier nicht geposted.
      deshalb bitte eine ergiebigere Antwort.
      Danke!

      Kommentar


      • #4
        wenn du am Anfang schreiben willst, bleibt dir nichts anderes übrig als:
        - Datei öffen und komplett auslesen
        - neue Datei erstellen
        - neue Daten in neue Datei schreiben
        - alte Inhalt in neue Datei schreiben
        - alte Datei löschen
        - neue Datei mit dem Namen von alter Datei speichern

        Kommentar


        • #5
          okay danke. ich versuch das mal selbstständig.
          Aber welche Funktion brauch ich da? Irgendwelche Tipps/Anregungen welche am optimalsten sind?

          Kommentar


          • #6
            fopen()
            fread()
            fclose()
            usw.

            mehr dazu wie immer auf www.php.net !
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              hmm hab jetzt rumprobiert und gemacht aber alles funktionierte nicht, könnte jemand ein beispiel geben wie das aussehen könnte oder auf ein tut verweisen wo dieses besprochen wird?
              Danke!

              Kommentar


              • #8
                Original geschrieben von PersonalDemon
                aber alles funktionierte nicht
                wie sieht "alles" denn aus?

                auf fread und fwrite hast du auch beispielcode
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  im Forum gibts auch Beiträge dazu, warum suchst du nicht?
                  http://www.php-resource.de/forum/sea...der=descending

                  Kommentar


                  • #10
                    @asp2php
                    dieses descending kannte ich vorher nicht deswegen hab ich nichts gefunden.

                    ansonsten so siehts aus bisher , aber funktioniert nicht:

                    PHP-Code:
                    <?php
                    $daten
                    ="Name:&nbsp;<a href=mailto:$email>$name</a>&nbsp;&nbsp;|&nbsp;&nbsp;Homepage:&nbsp;<a href=http://$hp target=_blank>$hp</a>&nbsp;&nbsp;|<br><br><u>Message:</u><br><br>$eintrag<br><hr><br>";
                    $datenbank "daten.dat";
                    $datei fopen($datenbank,"r");
                    if (!
                    $datei) {
                        print 
                    "File $datenbank doesn't exist<br>\n";
                    } else {
                        while (!
                    feof($datei)) {
                            
                    $zeilen[] = fgets($datei4096); // File zeilenweise in einen Array einlesen
                        
                    }
                        
                    fclose($datei);
                        
                    $datei fopen($datenbank,"w"); // File zum Schreiben öffnen
                        
                    for ($i=0;$i<sizeof($zeilen);$i++) { // Array lesen und Inhalte in File schreiben
                            
                    $zeile $zeilen[$i];
                            if (
                    substr($zeilen[$i],3,2) == "$InhaltAlt") {  // Abfrage ob ab Position 3 in Länge 2 "45" steht
                               
                    $zeile substr($zeilen[$i],0,3) . $InhaltNeu substr($zeilen[$i],5,1000);
                            }
                            
                    fputs($datei$zeile);
                        }
                        
                    fclose($datei);
                    }
                    ?>

                    Kommentar


                    • #11
                      wasfür ein descending? hast du den Link mal genauer angeschaut? es steht drin: ...&sortorder=descending, was ist denn wohl damit gemeint?
                      aber funktioniert nicht
                      neue Fehlermeldung von PHP? welche PHP-Version hast du denn? Bei mir kommt so 'ne Meldung bisher noch nicht!

                      Also erzähl mal genauer. Etwa IST/SOLL-Zustände beschreiben, Fehlermeldung komplett posten, etc.

                      Kommentar


                      • #12
                        okay das mit dem descending hab ich jetzt verstanden ist mir nachher auch aufgefallen.

                        fehlermeldung?
                        Es erscheint nichts auf den screen nur die seite drum herum, es wird nichts in die datei geschrieben.

                        PHP Vers. 4.3.4

                        Kommentar


                        • #13
                          1. wenn du keine Ausgabe machst, wie soll denn was erscheinen
                          2. error_reporting = was? display_errors = was?
                          3. mach mal folgendes:
                          PHP-Code:
                          if ($arrData file($datenbank)) {
                             echo 
                          '<pre>';
                             
                          print_r($arrData);
                             echo 
                          '</pre>';
                             exit();

                          else 
                             die(
                          "Error by opening $datenbank"); 
                          was bekommst du?

                          Kommentar


                          • #14
                            jetzt sieht es bei mir so aus:
                            PHP-Code:
                            <?php
                            $daten
                            ="Name:&nbsp;<a href=mailto:$email>$name</a>&nbsp;&nbsp;|&nbsp;&nbsp;Homepage:
                            &nbsp;<a href=http://
                            $hp target=_blank>$hp</a>&nbsp;&nbsp;|<br><br><u>Message:</u>
                            <br><br>
                            $eintrag<br><hr><br>";
                            $datenbank "daten.dat";
                            $datei fopen($datenbank,"r");
                            if (
                            $arrData file($datenbank)) {
                               echo 
                            '<pre>';
                               
                            print_r($arrData);
                               echo 
                            '</pre>';
                               exit();
                            }
                            else
                               die(
                            "Error by opening $datenbank");
                                while (!
                            feof($datei)) {
                                    
                            $zeilen[] = fgets($datei4096); // File zeilenweise in 
                            einen Array einlesen
                                
                            }
                                
                            fclose($datei);
                                
                            $datei fopen($datenbank,"w"); // File zum Schreiben öffnen
                                
                            for ($i=0;$i<sizeof($zeilen);$i++) { // Array lesen und Inhalte in File schreiben
                                    
                            $zeile $zeilen[$i];
                                    if (
                            substr($zeilen[$i],3,2) == "$InhaltAlt") {  // Abfrage ob ab
                             
                            Position 3 in Länge 2 "45" steht
                                       $zeile 
                            substr($zeilen[$i],0,3) . $InhaltNeu substr($zeilen[$i],5,1000);
                                    }
                                    
                            fputs($datei$zeile);
                                }
                                
                            fclose($datei);
                            }
                            ?>

                            Fehlermeldung:

                            Parse error: parse error, unexpected '}' in c:\usr\krasnal\www\kiss2\gb_send.php on line 48

                            Die betreffende Zeile ist die letzte vor dem Abschluss-PHP-Tag also da wo nur die } drin ist. nach fclose.
                            Zuletzt geändert von PersonalDemon; 05.11.2004, 11:56.

                            Kommentar


                            • #15
                              {} paare zählen ... was fällt dir auf? richtig, hinter "else" fehlt eine {
                              Kissolino.com

                              Kommentar

                              Lädt...
                              X