Mehrzeiligen Datenbankeintrag splitten
botl1k3
- php
0 Jeena Paradies0 botl1k30 Jeena Paradies0 botl1k30 Jeena Paradies0 Jeena Paradies
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
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
Hallo,
Hab ich das falsche Suchmuster?
Probier mal nur mit "\n"
Jeena
Hi,
geht leider auch nicht:
echo $row['auflagen_count']; <- Test, das richtige steht drin
$test = split('\n', $row['auflagen_count']);
echo $test[0];
greetz
Hallo,
$test = split('\n', $row['auflagen_count']);
Ich schrieb ja auch "\n" und nicht '\n', das ist ein großer Unterschied in PHP.
Jeena
Hallo,
klappt wirkich, danke!!
das ist ein großer Unterschied in PHP.
Worin liegt genau der Unterschied?
greetz
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
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
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
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.
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";
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
Ich danke euch allen, hat geklappt!
greetz