Finde einfach den Fehler nicht

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

  • Finde einfach den Fehler nicht

    hi
    hier ein ausschnitt von meinem teilscript, dass, wenn $nerst1==1 eine bestehende variable in eine datei schreiben, wenn $nerst==0, dann wird eine neue variable geschrieben. Das problem ist jetzt nun, dass, wenn ich das script aufrufe, die datei, in die geschrieben werden soll (da steht vorher
    <?php
    ?>
    drinnen), einfach lehr wird, und 0kB bekommt.
    Wo liegt mein Fehler?
    vielen dank
    SquirrelFrank


    PHP-Code:
    $rp fopen("variable.php","w");
       if (
    $rp)
       {
          
    // Alle Werte in einen Array lesen
          
          
    while(!feof($rp))
          {
               
    $zeile fgets($rp1000);
             if(
    $nerst==0)
             {
                 
    $zeichenz strpos($zeile"=");
                
    $vzeile substr($zeile0$zeichenz);
                if(
    $bvar!=$vzeile)
                { 
    fwrite($rp,$zeile); }
                else
                {
                
    $satzteichen="'";
                
    $ersatzwritezeile=$bvar."=".$satzteichen.$varcontent.$satzteichen.";";
                
    fwrite($rp,$ersatzwritezeile);
                }
             }
             elseif(
    $nerst==0)
             {
                 
                    
    $satzzeichen1="$";
                    
    $satzteichen="'";                
                    
    $endofall="?>";
                    
    $ersatzwritezeile=$satzzeichen1.$bvar."=".$satzteichen.$varcontent.$satzteichen.";";
                    
    fwrite($rp,$ersatzwritezeile);
                    
    fwrite($rp,$endofall);
                
             
             }
            
          }
          
    fclose($rp);
       } 

  • #2
    In der Doku zu fopen steht:

    w' Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.

    Wie willst du da also noch was aus der Datei lesen?

    Gruß
    Uwe

    Kommentar


    • #3
      was ist $nerst?

      ausserdem, $nerst wird zweimal mit der selben bedingung getestet. ist doch eigentlich unsinn (oder?)

      PHP-Code:
      if($nerst==0)
               {
                
      ####
               
      }
               elseif(
      $nerst==0)
               {
                   
                      
      ###
               
               

      mfg

      Kommentar


      • #4
        Re: Finde einfach den Fehler nicht

        Original geschrieben von SquirrelFrank
        wenn $nerst1==1 eine bestehende variable in eine datei schreiben, wenn $nerst==0, dann wird eine neue variable geschrieben
        aber ok, ich kann das zweite auch rausgeben, ... aber daran ist ja nix falsch, is nur eine eigenart von mir ^^.

        aber danke, für deinen post

        Kommentar


        • #5
          Original geschrieben von uwe59
          In der Doku zu fopen steht:

          w' Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.

          Wie willst du da also noch was aus der Datei lesen?

          Gruß
          Uwe

          ah ok

          werde es mit "r+" versuchen, danke für deinen tipp!

          Kommentar


          • #6
            also:

            jetzt wird gar nicht in die datei geschrieben. (wenn nerst==0)

            Kommentar


            • #7
              coolo, jetzt funktioniert es... muss nur noch ein paar fehler rausräumen, vielen dank!

              Kommentar


              • #8
                oh nein...

                jetzt lääst sich das script nicht mehr ausführen... oweh, oweh...
                habe wohl doch nicht alle fehler gefunden...

                PHP-Code:
                  $rp fopen("variable.php","r+");
                   if (
                $rp)
                   {
                      
                // Alle Werte in einen Array lesen

                      
                while(!feof($rp))
                      {
                           
                $zeile1 fgets($rp1000);
                         if(
                $nerst1==0)
                         {
                             
                $zeichenz strpos($zeile1"=");
                            
                $vzeile substr($zeile10$zeichenz);
                            if(
                $bvar!=$vzeile)
                            { 
                fwrite($rp,$zeile1); }
                            else
                            {
                            
                $satzteichen2="'";
                            
                $ersatzwritezeile=$bvar."=".$satzteichen2.$varcontent.$satzteichen2.";";
                            
                fwrite($rp,$ersatzwritezeile);
                            }
                         }
                         elseif(
                $nerst1==1)
                         {
                             if(
                $zeile1!="?>")
                            {
                fwrite($rp,$zeile1);}
                            else
                            {
                                
                $satzzeichen1="$";
                                
                $satzteichen2="'";                
                                
                $endofall="?>";
                                
                $ersatzwritezeile=$satzzeichen1.$bvar."=".$satzteichen2.$varcontent.$satzteichen2.";";
                                
                fwrite($rp,$ersatzwritezeile);
                                
                fwrite($rp,$endofall);
                            }
                            
                            
                         
                         }
                        
                      }
                      
                fclose($rp); 
                Danke
                SquirrelFrank

                Kommentar


                • #9
                  kleine übersicht:

                  $bvar = Variable name
                  $varcontent = Variablen-inhalt

                  $nerst1 ==1 : Neue Variable
                  $nerst1 ==0 : Variable bearbeiten

                  Kommentar


                  • #10
                    wenn du die datei nur zum lesen öffnest dann kannst du nix reinschreiben ...
                    PHP-Code:
                    $rp fopen("variable.php","r+"); 
                    Mess with the Besth, die like the rest!

                    Kommentar


                    • #11
                      aus: php.net :

                      'r+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.

                      daran kann es also nicht liegen, aber ansonsten wohl an jeder zeile^^

                      Kommentar


                      • #12
                        Durch den Wechsel mit fgets und fwrite zerschießt du die Datei. Du musst erst die Datei komplett einlesen, z.B. in ein Array mit file, dann die Daten bearbeiten und danach die Datei neuschreiben.

                        Gruß
                        Uwe

                        Kommentar


                        • #13
                          ok, werde es versuchen!

                          Vielen dank, schreib dann heute abend, oder morgen das resultat.

                          Kommentar

                          Lädt...
                          X