Probleme mit explode()

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

  • Probleme mit explode()

    Hallo,

    habe ein kleines Problem mit Explode.

    Ich lese aus einer textdatei einen String ein, teile ihn dann erst bei Zeilenumbrüchen, und dann beim Trennungszeichen. Die Strings die ich so erhalte werden in einen Array eingelesen.

    Das Schreiben und sortieren dieser textdatei und Ihrer Daten klappt perfekt, nur bei meiner update-Funktion is noch der Wurm drin. Hier werden auch wieder alle Daten aus der Textdatei gelsen, alle Datensätze (entsprechen je einer zeile in der tabelle) die nicht geändert werden sollen, werden wieder zu einem String zusammengefasst und abgespeichert, nur der Datensatz der geändert wird nicht. Dieser wir in zwei variablen gespeichert, die wiederrum in einem Formular eingefügt werden.
    In diesem Formular sollen nun die User Daten ändern können, danach wird der Datensatz in einen String umgewandelt (Bsp.: 20041212+Test test\n, wobei das "+" mein trennungszeichen ist) und an die Datei angehängt.

    Nun aber zum fehler, bei der Übergabe der Daten an das Formular, oder schon beim auslesen, enthält die eine Variable ( $text_bearb=$termine[$j][1]; )ein "\n" am Ende, obwohl sie dort ja unterbrochen werden sollte.

    Hier mal der Code :
    PHP-Code:
    $termine=&zerlegen();//Zerlegen der Textdatei, zuerst nach "\n" dann nach "+"
            
    $termine2="";//Der neue String
            
    $i=sizeof($termine)-1;
            
    //echo "<br>";
            //echo $i;
            //Schleife über Zeilen
            
    for($j=0;$j<$i;$j++)
                {
                    if(
    strcmp($j,$zeile)!=0)//Wandle alle zeilen bis auf die ausgewählte in einen String um
                        
    {
                            
    $termine2.=$termine[$j][0];
                            
    $termine2.="+";
                            
    $termine2.=$termine[$j][1];
                            
    $termine2.="\n";
                            
                        }
                    else
                        {
                            
    $datum_bearb=$termine[$j][0];
                            
    $text_bearb=$termine[$j][1];// <<<<====In dieser Variable steckt der WURM, bzw. das "\n"
        
                        
    }
                } 
    Die Formularzeilen sehen so aus :

    PHP-Code:
    <tr valign="top"> 
          <td> <input name="datum" type="text" id="datum" value="<?PHP echo $datum_bearb;?>" size="8" maxlength="8"></td>
          <td> <textarea name="text" cols="50" rows="5" id="text"><?PHP echo $text_bearb;?></textarea></td>
        </tr>
    Kann mir jemand helfen, wo kommt das "\n" auf einmal her, eigentlich sollte der String ja daran getrennt werden, oder verstehe ich das falsch ?!

    EI

  • #2
    scheint an deiner funktion zerlegen() zu liegen
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Mal eben ne dumme frage, warumn machst du termine als zeiger auf zerlegen() ? Peil ich net so ganz.

      Naja und deine zerlegen funktion wäre vielleicht ganz hilfreich....
      Zuletzt geändert von TNDKillian; 15.06.2004, 12:18.
      Alle Rechtschreibfehler sind gewollt und sollen zur erheiterung beitragen

      Wenn man nicht alzu faul ist zum lesen, hilft das immer :
      Google PHP.net
      [color=red]Denn wie immer gilt : Wer lesen kann ist klar im vorteil.....[/color]


      Gruss Killian

      Kommentar


      • #4
        Hier die function zerlegen() :

        PHP-Code:
        function zerlegen ()
            {
                
        $text "termin.txt";
                
        $fp fopen ($text"r");
                if (
        filesize($text)>0)
                    {
                        
        $str fread ($fpfilesize($text));
                        
        fclose ($fp);
                        
        //Zerlegen des Textes in Zeilen
                        
        $array explode("\n",$str);
                        
        //Wieviele Zeilen wurden geschrieben
                        
        $i=sizeof($array);
                        
        //Zerlegen der zeilen in Spalten
                        
        for($j=0;$j<$i;$j++)
                            {
                                
        $termine[$j] = explode("+",$array[$j]);
                            }
                        return 
        $termine;
                    } 

        Kommentar


        • #5
          warum nimmste net file() ? da kriegste gleich nen array raus

          und dann kannste immer noch deine spalten machen.

          PHP-Code:
          function zerlegen ()
              {
                  
          $temine = array();

                  
          $text "termin.txt";
                  
          $fp file $text );

                  for( 
          $i 0$i count$fp ); $i++ )
                  {
                      
          $termine[$i] = explode("+",$fp[$i]);
                  }
                  return 
          $termine;
              } 
          ausserdem isses kürzer
          Alle Rechtschreibfehler sind gewollt und sollen zur erheiterung beitragen

          Wenn man nicht alzu faul ist zum lesen, hilft das immer :
          Google PHP.net
          [color=red]Denn wie immer gilt : Wer lesen kann ist klar im vorteil.....[/color]


          Gruss Killian

          Kommentar


          • #6
            Zu file() hab ich folgendes in SELFPHP gefunden

            Das Zeilenumbruchzeichen am Ende jeder Zeile wird als letztes Zeichen
            n das entsprechende Array-Element übernommen.
            Wird der Zeilenumbruch also mit in den Array übernommen oder nicht ?

            Kommentar


            • #7
              Original geschrieben von ExInfernis
              Wird der Zeilenumbruch also mit in den Array übernommen oder nicht ?
              lies den satz aus dem manual doch bitte noch mal.
              und noch mal.
              und noch mal.

              ... bis du ihn verstehst.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                OffTopic:
                und dann schmeisst man google an und sucht mal anch ereg_replace und wolla findet man auch ein paar links, wie man das \n am ende weg kriegt. Aber das wäre ja zu einfach
                Alle Rechtschreibfehler sind gewollt und sollen zur erheiterung beitragen

                Wenn man nicht alzu faul ist zum lesen, hilft das immer :
                Google PHP.net
                [color=red]Denn wie immer gilt : Wer lesen kann ist klar im vorteil.....[/color]


                Gruss Killian

                Kommentar


                • #9
                  Original geschrieben von TNDKillian
                  Aber das wäre ja zu einfach
                  nein, das wäre zu umständlich - (r)trim tut's auch.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Wenn euch die Fragen zu blöd sind, müsst ihr ja nicht antworten.

                    Ich danke trotzdem allen die helfen wollten, werde das schon irgendwie hinbekommen.

                    ei

                    Kommentar


                    • #11
                      Original geschrieben von ExInfernis
                      Wenn euch die Fragen zu blöd sind, müsst ihr ja nicht antworten.
                      schöner wäre es allerdings, wenn sie gar nicht andauernd gestellt würden.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Werde mich bemühen.

                        EI

                        Kommentar


                        • #13
                          Original geschrieben von wahsaga
                          nein, das wäre zu umständlich - (r)trim tut's auch.
                          ok hast gewonnen, hab net dran gedacht
                          Alle Rechtschreibfehler sind gewollt und sollen zur erheiterung beitragen

                          Wenn man nicht alzu faul ist zum lesen, hilft das immer :
                          Google PHP.net
                          [color=red]Denn wie immer gilt : Wer lesen kann ist klar im vorteil.....[/color]


                          Gruss Killian

                          Kommentar

                          Lädt...
                          X