botl1k3: Mehrzeiligen Datenbankeintrag splitten

Hi,

ich habe einen Datenbankeintrag, der über mehrere Zeilen geht (gewöhnlich so um die 5-7).
Ich möchte jede Zeile gerne in ein <td> Packen.
Leider weiß ich nicht, wie ich in php den Eintrag splitten kann, dass ich die Einträge mit einer Schleife erstellen kann..
Hat jemand eine Lösung für mich? :)

Danke schonmal!

greetz

  1. Hallo,

    wie ich in php den Eintrag splitten kann

    Guck dir mal split() an.

    Jeena

    1. Hi,

      Guck dir mal split() an.

      Danke. Habs aber noch nicht ganz hinbekommen.
      Und zwar muss ich ja bei split() ein Suchmuster angeben. Wenn ich das richtig sehe, muss immer geteilt werden bei "\r\n" (so ist so der Zeilenumbruch, oder?)
      Klappt aber bei mir leider nicht :(

      Hab ich das falsche Suchmuster?

      greetz

      1. Hallo,

        Hab ich das falsche Suchmuster?

        Probier mal nur mit "\n"

        Jeena

        1. Hi,

          geht leider auch nicht:
          echo $row['auflagen_count']; <- Test, das richtige steht drin
          $test = split('\n', $row['auflagen_count']);
          echo $test[0];

          greetz

          1. Hallo,

            $test = split('\n', $row['auflagen_count']);

            Ich schrieb ja auch "\n" und nicht '\n', das ist ein großer Unterschied in PHP.

            Jeena

            1. Hallo,

              klappt wirkich, danke!!

              das ist ein großer Unterschied in PHP.

              Worin liegt genau der Unterschied?

              greetz

              1. Hallo,

                klappt wirkich, danke!!

                Super, bitte :-)

                Worin liegt genau der Unterschied?

                Das wiederum steht in der [link=http://se.php.net/manual/de/language.types.string.php@title=Doku].

                Jeena

          2. Hallo,

            echo $row['auflagen_count']; <- Test, das richtige steht drin
            $test = split('\n', $row['auflagen_count']);
            echo $test[0];

            Was ich übrigens machen würde wäre so etwas:

            echo "<td>". str_replace("\n", "</td><td>", $row['auflagen_count']) ."</td>";

            Jeena

            1. Hey,

              Jetzt hab ich noch ein Problem:
              Und zwar nimmt er die \n nicht weg, sondern trennt dort nur.. sind also noch in den Arrays und werden als Leerzeichen ausgegeben..
              ein str_replace auf das Array bringt nix, muss ich also bei jeder Ausgabe replacen?

              greetz

              1. Hi botl1k3,

                Und zwar nimmt er die \n nicht weg, sondern trennt dort nur.. sind also noch in den Arrays und werden als Leerzeichen ausgegeben..

                Dann hast du in deinen Daten vielleicht doch ein "\r\n" (beachte, nicht: '\r\n') statt nur ein "\n"? Das würde erklären, dass der Zeilenumbruch nicht wirklich weg ist. Denn sowohl split() als auch das von Jeena gezeigte Beispiel mit str_replace() sollten keinen Zeilenumbruch übrig lassen.

                ein str_replace auf das Array bringt nix, muss ich also bei jeder Ausgabe replacen?

                Jage die Daten doch einfach durch trim() durch, dann bist du alle Leerzeichen und Zeilenumbrüche am Anfang wie am Ende des Teilstrings los ;-)

                Viele Grüße,
                  ~ Dennis.

                1. echo $begrüßung;

                  Dann hast du in deinen Daten vielleicht doch ein "\r\n" (beachte, nicht: '\r\n') statt nur ein "\n"?

                  Am besten ist statt Rätselraten und stundenlangem Probieren immer noch Nachschauen. Von Zeichen, die sich nicht recht darstellen lassen (Steuerzeichen), schaut man sich am besten die Hex-Werte an. PHP gibt selbige aus, wenn man den betroffenen String durch bin2hex() sendet. (chunk_split(bin2hex(...), 2, ' ') erhöht die Übersichtlichkeit der Ausgabe.)

                  echo "$verabschiedung $name";

                  1. Hallo dedlfix,

                    Dann hast du in deinen Daten vielleicht doch ein "\r\n" (beachte, nicht: '\r\n') statt nur ein "\n"?

                    Am besten ist statt Rätselraten und stundenlangem Probieren immer noch Nachschauen.

                    Und wenn einem das zu viel Aufwand ist, kann man den String auch gleich mit einem Regexp trennen, der alle möglichen Zeileenden (\r, \n, \r\n) berücksichtigt:

                    $teile = preg_split ("/\r\n|\r|\n/", $string);

                    Dann kann einem egal sein, was denn GENAU das Zeilenende ist.

                    Viele Grüße,
                    Christian

                    1. Ich danke euch allen, hat geklappt!

                      greetz