Text konvertieren

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

  • Text konvertieren

    Moin, moin!

    Hallo ertmal. Dies ist mein erster Post hier im Forum. Ihr werdet mich dem nächst vermutlich öfters hier sehen, allerdings hoffe ich, dass ich nicht nur Fragen stellen sondern auch welche beantworten werde.
    Aber wie dem auch sei mein erster Post ist eine Frage:

    Ich schreibe momentan an einer kleine Page, die Informationen aufnehmen, verarbeiten und dann abspeichern soll, um diese späater wieder anzeigen zu können. Dabei bin ich auf ein Problem gestossen, dass ich nach 2 Tagen tüftelei immer noch nicht gelöst habe:
    An einer Stelle wird in eine Textarea Text eingegeben, der immer nach dem gleichen Schema aufgebaut ist. Diesen Text möchte ich in seine Bestandteile zerlegen und dann diese voneinander getrent in eine MySQL Datenbank speichern. Das klapp aber leider nicht so wie ich das gerne möchte.
    Ich poste Euch hier mal den stark vereinfachten Quelltext hin, damit ihr seht worum es geht. Ich habe der Übersicht halber, alle Variabeln geändert (vorher war es ein heilloses Chaos) also wundert Euch nicht, dass es keinen Sinn macht diese Daten so einzugeben (in echt gehts um was anderes). Ausserdem habe ich anstatt die Daten zu speichern sie ausgeben lassen, um zu kontrolieren was passiert.
    So hier nu aber der Quelltext:

    PHP-Code:
      if (isset($_GET['go']) AND $_GET['go'] == "add") {
        
    $daten explode(" "$_POST['insert']);
        
    $limit count($daten);

        foreach (
    $daten as $key => $wert) {
          echo 
    $key.": ".$wert."<br>";
        }

        for (
    $i 0$i $limit$i $i 5) {
          
    $nick $daten[$i];
          
    $vorname $daten[$i 1];
          
    $name $daten[$i 2];
          
    $ort $daten[$i 3];
          
    $beruf $daten[4];

          echo 
    "Der $beruf - $vorname - $name auch bekannt als $nick lebt in $ort <br>";
        }
    /*
        $i = 0;

        do {
          $nick = $daten[$i];
          $vorname = $daten[$i + 1];
          $name = $daten[$i + 2];
          $ort = $daten[$i + 3];
          $beruf = $daten[i + 4];

          echo "Der $beruf - $vorname - $name auch bekannt als $nick lebt in $ort <br>";

          $i = $i + 5;
        } while ($i < $limit);
    */
      

    Wenn ich dann dieseshier:

    Superman Jan Thiele Hamburg Schüler Batman Tobias Nachtmann München Strassenfeger

    eingebe, bekomme ich folgendes zurück:

    0: Superman
    1: Jan
    2: Thiele
    3: Hamburg
    4: Schüler
    5: Batman
    6: Tobias
    7: Nachtmann
    8: München
    9: Strassenfeger
    Der Schüler - Jan - Thiele auch bekannt als Superman lebt in Hamburg
    Der Schüler - Tobias - Nachtmann auch bekannt als Batman lebt in München

    Das Problem ist, dass obwohl das 10. Arrayelement den Wert Strassenfeger hat, bei der Aussgabe Schüler steht. Dies passiert auch, wenn ich nicht die for-Schleife, sondern die momentan deaktivierte do-while-Schleife benutze.
    Ein weiteres Problem ist, dass wen ich in dem Text den ich eingebe nach Schüler einen Zeilenumbruch mache, Schüler und Batman nicht getrennt werden, sondern MIT Leerzeichen in einem Arrayelement stehen.

    Ich hoffe, dass ich mein Problem einigermassen verständlich erklärt habe und mir jemand helfen kann. Ich bin aufjeden Fall jetzt schon Dankbar für jeden Tip den ihr mir geben könnt.

    MFG Shiriki

    P.S.: Sorry wenn das Problem schoneinmal aufgetaucht ist. Ich habe mit der Suchfunktion nichts gefunden.
    Zuletzt geändert von Shiriki; 14.06.2004, 00:39.
    Sag einmal "Ja" zum Leben, sonst sagt das Leben noch "Nein"!

    Geschichte bewundert den Weisen, dem Tapferen aber huldigt sie.

  • #2
    welcome.

    erklärung ist wunderbar. allerdings zu viel quelltext. die ganze html-schose interessiert mich ja recht wenig. kannst du das ganze mittels edit noch ein bisschen beschränken?

    Ein weiteres Problem ist, dass wen ich in dem Text den ich eingebe nach Schüler einen Zeilenumbruch mache, Schüler und Batman nicht getrennt werden, sondern MIT Leerzeichen in einem Arrayelement stehen.
    Das ist nicht so! Der umbruch besteht weiterhin, auch in dem arrayelement. der wird dir nur vom browser nicht angezeigt. logisch. wenn du AUCH nach enters splitten willst, musst du mal split() ansehen.

    Kommentar


    • #3
      So ich habe den Quelltext jetzt auf das nötigste zusammengekürzt. Das mit Split hat geklappt. Die Funktion kannte ich noch gar nicht, das kommt vermutlich daher, dass ich noch ein ziemlich php-Noob bin.
      Aber das Problem, dass er ab dem zweiten Durchgang den Beruf nicht ändert bleibt weiterhin bestehen.
      Sag einmal "Ja" zum Leben, sonst sagt das Leben noch "Nein"!

      Geschichte bewundert den Weisen, dem Tapferen aber huldigt sie.

      Kommentar


      • #4
        so, der quelltext sieht doch schon besser aus.

        dein fehler:
        $beruf = $daten[i + 4];

        Kommentar


        • #5
          PHP-Code:
          $ort $daten[$i 3];
          $beruf $daten[4]; 
          if u cant see it
          it cant be seen

          EDIT:
          und wieder zu lahm
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            Och nöö das glaub ich jetzt nicht. Wisst ihr eigentlich wie lange ich rumprobiert habe um das endlich hinzubekommen und dann fehlt da nur ein verdammtes $-Zeichen. Trotzdem vielen Dank!! Eine Frage hab ich aber noch. Ich komme mit den Regexen (is das der Plural von Regex?!) noch nicht klar. Weiss jemand ne Seite wo, das ganze ausführlich erklärt ist und/oder kann mir sagen, was genau ich bei split() eingeben muss, damit er nach jedem Leerzeichen und nach jedem Zeilenumbruch ein neues Arrayelement anlegt?

            Danke!!
            Sag einmal "Ja" zum Leben, sonst sagt das Leben noch "Nein"!

            Geschichte bewundert den Weisen, dem Tapferen aber huldigt sie.

            Kommentar


            • #7
              Original geschrieben von Shiriki
              Och nöö das glaub ich jetzt nicht. Wisst ihr eigentlich wie lange ich rumprobiert habe um das endlich hinzubekommen und dann fehlt da nur ein verdammtes $-Zeichen. Trotzdem vielen Dank!! Eine Frage hab ich aber noch. Ich komme mit den Regexen (is das der Plural von Regex?!) noch nicht klar. Weiss jemand ne Seite wo, das ganze ausführlich erklärt ist und/oder kann mir sagen, was genau ich bei split() eingeben muss, damit er nach jedem Leerzeichen und nach jedem Zeilenumbruch ein neues Arrayelement anlegt?

              Danke!!

              hmm entweder www.selfphp.info oder www.php.net
              ich empfehle dir auch ne gute entwicklungsumgebung, denn dann wird dir bei eingabe eines befehls z.b. strpos( ) sofort gezeigt welche übergabeparameter du angeben musst und welche optional sind
              ich benutze zend studio (www.zend.com) mussu dich zwar registrieren, aber kannst für non-profit zwecke das ganze kostenlos benutzen, zwar bissl eingeschrenkt aber die anderen funktionen brauchste eh nich

              Kommentar


              • #8
                pl. RegEx oder reguläre ausdrücke

                Kommentar

                Lädt...
                X