benötige spezielle php variablenausgabe von array......

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

  • #31


    hast du bei jedem fputs auch immer "\n" am Ende der Zeile stehen?

    Falls ja, poste doch nochmals kurz das Skript

    Kommentar


    • #32
      ok, hier der code:
      <?

      $winner=tiger;
      $credits=1000;

      $fp = fopen("data.txt","r");
      while($data = fgets($fp,1024)){ // zeile für zeile einlesen
      $data = explode(";",$data); // jede zeile aufsplitten
      $hitlist[$data[0]] = trim($data[1]); // ein array erzeugen mit allen spielern
      }
      fclose($fp);

      arsort($hitlist);
      $min=array_pop($hitlist); // letzten Array-Eintrag (kleinster Credits-Wert)

      if ($credits>$min) { // wenn übergebener Wert größer als Min-Wert dann Eintrag schreiben
      $fp=fopen("data.txt","w");
      while (list ($key, $val) = each ($hitlist)) {
      fputs($fp,$key.";".$val."\n"); // vorher alle restlichen Einträge schreiben
      }
      fputs($fp,$winner.";".$credits."\n"); // und dann den neuen Eintrag am Ende anhängen
      fclose($fp);
      }


      ?>
      $PHP resource 4ever$

      Kommentar


      • #33
        sorry, ich habs jetzt mal bei mir getestet und bei mir hat es prima geklappt, d.h. das Ergebnis-File war auch mit Zeilenumbrüchen versehen.
        Einziger Fehler in deinem Code: es muß $winner="tiger"; heissen, also in Anführungszeichen.

        Hier nochmals der Code mit kleiner Ausgabe, was eigentlich weggeschrieben wird:
        Code:
        <? 
        $winner="Tiger2"; 
        $credits=1200; 
        
        $fp = fopen("data.txt","r"); 
        while($data = fgets($fp,1024)){ // zeile für zeile einlesen 
        	$data = explode(";",$data); // jede zeile aufsplitten 
        	$hitlist[$data[0]] = trim($data[1]); // ein array erzeugen mit allen spielern 
        	} 
        fclose($fp); 
        
        arsort($hitlist); 
        $min=array_pop($hitlist); // letzten Array-Eintrag (kleinster Credits-Wert) 
        
        if ($credits>$min) { // wenn übergebener Wert größer als Min-Wert dann Eintrag schreiben 
        	$fp=fopen("data.txt","w+"); 
        	while (list ($key, $val) = each ($hitlist)) {
        		echo "Datensatz: ".$key." - ".$val."<br>";
        		fputs($fp,$key.";".$val."\n"); // vorher alle restlichen Einträge schreiben 
        		} 
        	fputs($fp,$winner.";".$credits."\n"); // und dann den neuen Eintrag am Ende anhängen 
        	echo "Datensatz neu: ".$winner." - ".$credits."<br>";
        	fclose($fp); 
        	}
        ?>
        wird dein File auch wirklich überschrieben? Da es bei mir geht, bin ich bißchen ratlos

        Kommentar


        • #34
          hi,

          erst einmal ein GROSSES SORRY... denn ich habe nur den letzten Beitrag von BrainBug in diesem Thread gelesen ... kommt nicht wieder vor

          ...da mir aber sofort etwas aufgefallen ist, hier mein Kommentar:

          also, BrainBug hat geschrieben:

          "[...]d.h. das Ergebnis-File war auch mit Zeilenumbrüchen versehen[...]"

          ...dieses Problem hatte ich kuerzlich auch unter W2k!

          Und zwar:
          Wenn man Zeilenumbrueche in einer Datei realisieren moechte, dann nutzt man normalerweise
          fwrite($datei,"\n");
          oder
          fwrite($datei,"\r");
          Wenn man dann die gewuenschte Datei zeilenweise ausliest, bekommt man auch die Zeilenumbrueche ausgegeben.
          ABER in der Datei selbst sind KEINE Zeilenumbrueche (...also unter W2k!).
          Was tun?
          Abhilfe schafft ein lustiges Zusammenspiel beider Befehle:
          fwrite($datei,"\r\n");
          ...dann wirst Du auch einen Zeilenumbruch erhalten!

          Ach ja, ...ich weiss jetzt jedoch nicht, was dann unter Linux passiert!

          so long,

          Duncan McLord

          Kommentar


          • #35
            VIELEN DANK. Hätt ich nie allein geschafft!!!

            @BrainBug:
            SORRY, die Funktion hat gestern schon gepaßt. War mein (unwissentlicher) Fehler. Ich hab mir im WindowsCommander die Data.txt mit F4(Edit) angeschaut und da macht er so komische Zeichen. Hab's mir jetzt grad mit F3(View) angeschaut. Paßt supi.

            Hast Du zufällig 'ne Ahnung warum der Netscape keine php-files öffnen kann?? Ich lade meine Menu.php als linkes Frame in meine Seite rein und der blöde Netscpape kann das nicht. Beim IE funkts tadellos.

            $PHP resource 4ever$

            Kommentar


            • #36
              das kann viele Gründe haben. Liegt sicher nicht an PHP (Ausnahme: du machst dort eine Abfrage ob IE und nur dann wird was ausgegeben), sondern meist an HTML bzw. Javascript.

              Was macht denn dein Menu? Irgendwas verkraftet da Netscape wohl nicht...

              aber vielleicht machst du mal ein neues Thema dafür auf. Mich nerven immer diese ewig lange Themen mit mehreren Seiten

              Kommentar

              Lädt...
              X