Aus Textarea die Zeilenümbrüche auslesen
flasher008
- php
0 romy0 flasher0080 Lemmy Danger0 mamue
0 mamue0 Lemmy Danger
Ja, wie es oben steht;
ich möchte per Textarea etwas abschicken, und er soll das Format (Leerzeichen, Zeilenümbrüche) beibehalten.
THX
Ja, wie es oben steht;
ich möchte per Textarea etwas abschicken, und er soll das Format (Leerzeichen, Zeilenümbrüche) beibehalten.
wohin möchtest DU es abschicken? Ausserdem kannst Du das selbst einstellen in der textarea mit dem wrap-tag
3. denke ich dass er das eh beibehält, wie kommst du darauf, dass die leerzeichen und zeilenumbrüche dann nicht mehr da sind?
bitte
romy
THX
Ja, wie es oben steht;
ich möchte per Textarea etwas abschicken, und er soll das Format (Leerzeichen, Zeilenümbrüche) beibehalten.
wohin möchtest DU es abschicken? Ausserdem kannst Du das selbst einstellen in der textarea mit dem wrap-tag
- denke ich dass er das eh beibehält, wie kommst du darauf, dass die leerzeichen und zeilenumbrüche dann nicht mehr da sind?
bitte
romyTHX
ich schicke es per post-method an die selbe datei.
in der datenbank sind die zeilenumbrüche auch noch zu sehen.
aber in html nicht ...
Tach auch!
ich schicke es per post-method an die selbe datei.
in der datenbank sind die zeilenumbrüche auch noch zu sehen.
aber in html nicht ...
Die Leerzeichen werden beibehalten. Mach aber das oben gepostete str_replace der Zeilenumbrüche bei der Ausgabe...
Gruss
Lemmy
http://www.olison.com
hallo,
ich kann es nur nochmal betonen, weil ich genau das gleiche problem hatte; die daten stehen in der datenbank so drinnen, wie sie sein sollen, d.h. mit entsprechenden umbrüchen; bei der ausgabe die funktion nl2br() verwenden, damit diese umbrüche in <br>-tags für die html-ausgabe umgewandelt werden:
<?php echo nl2br($ausgabevariable) ?>
so müsste es klappen!
mfg
mamue
hallo,
ich kann es nur nochmal betonen, weil ich genau das gleiche problem hatte; die daten stehen in der datenbank so drinnen, wie sie sein sollen, d.h. mit entsprechenden umbrüchen; bei der ausgabe die funktion nl2br() verwenden, damit diese umbrüche in <br>-tags für die html-ausgabe umgewandelt werden:
<?php echo nl2br($ausgabevariable) ?>
so müsste es klappen!
mfg
mamue
die funktion hatte ich gesucht, habe ich früher auch vewendet, aber man wird ja nicht jünger ;-).
Hallo,
Du hast mit Drei verschiedenen Formaten zu Kämpfen, deren Überführbarkeit ineinander nicht verloren gehen sollte:
1. Textarea Format
2. HTML-Text Format
3. Speicherformat
a. Textdatei, eine Zeile pro Datensatz
b. Textdatei, eine Datei pro Feld
c. Datenbank (Blobs und Memo sind vorhanden)
Ich ersetze die Newlinezeichen aus einer Textarea immer gegen chr(127) und benutze als Feldtrenner in einer Textdatei chr(4).
Denn bedenke, wenn Du als Feldtrenner z.B. das Semikolon benutzen würdest, dürften Deine Datenfelder keines enthalten. Das wäre doch dumm. Das Zeichen chr(4) ist ursprünglich als Sonderzeichen zur Textbegrenzung gedacht gewesen. Warum sollte man es dann nicht dafür benutzen? Das Zeichen #127 war ursprünglich zur Weiterschaltung des Zeichensatzes auf die nächten 127+1 Zeichen gedacht und wird heute nicht mehr benutzt, steht also für ein CRLF aus einem Textfeld zur Verfügung.
CRLF muss auf folgende Weise ersetzt werden:
$textarea = str_replace(chr(13).chr(10),$chr(127),$textarea);
$textarea = str_replace(chr(13),$chr(127),$textarea);
$textarea = str_replace(chr(10),$chr(127),$textarea);
Alle drei Ersetzugnen müssen in genau dieser Reihenfolge durchgeführt werden.
Es ist nicht sinnvoll nach "\r\n" zu suchen, da "\n\ bei verschiedenen Systemen schon wieder unterschiedlich dargestellt wird. Hier muss man auf die tatsächlichen Zeichen zurückgreifen.
Außerdem war "\n\r" die falsche Reihenfolge.
Bevor die Daten wieder dargestellt werden, müssen dann die Rückersetzung durchgeführt werden:
$textarea = str_replace(chr127),chr(13).chr(10),$textarea)
In den gespeicherten Daten würde ich also auf jeden Fall die Umbruchzeichen erhalten. Man kann dann je nachdem, welche Anzeige gewünscht wird, die passende Ersetzung vornehmen.
nl2br() ersetzt die Umbruchzeichen nicht, sondern fügt HINTER dem Umbruchzeichen zusätzlich ein <br> (oder ein <br />) ein, Je nach PHP-Version.
Wenn Du die Datenfelder in eine Textdatei wegschreibst, dann vergiss nicht, an die Zeile ein "\n" anzuhängen.
Wenn Du die Zeile dann wieder aus der Textdatei holst, vergiss nicht vor dem explode() das "\n" hinten wieder abzuschneiden. Das geht entweder mit substring() oder auch wieder mit str_replace().
Liebe Grüße aus http://www.braunschweig.de
Tom
hallo,
schau dir mal die funktion nl2br() an ...; entweder in google eintippen oder im php-manual suchen; gute arbeitsunterlage: selfphp!
mfg
mamue
Tach auch!
ich möchte per Textarea etwas abschicken, und er soll das Format (Leerzeichen, Zeilenümbrüche) beibehalten.
Wohin willst Du es denn "abschicken"? In einer TXT-Datei z.B. würde alles so aussehen, wie es eingegeben wurde. Willst Du eine HTML-Ausgabe machen, musst Du die Zeilenumbrüche (\n\r) durch <br> ersetzen, die Leerzeichen durch . Das ganze funzt so:
$htmltext = str_replace("\n\r","<br>",$textarea);
$htmltext = str_replace(" "," ",$htmltext);
Zu beachten wäre allerdings, dass die Ausgabe von $htmltext nicht mehr korrekt umgebrochen wird, weil nun die zum automatischen Umbruch benötigten Leerzeichen fehlen (da diese ja durch ersetzt wurden).
Gruss
Lemmy
http://www.olison.com
Hallo,
$htmltext = str_replace("\n\r","<br>",$textarea);
$htmltext = str_replace(" "," ",$htmltext);Zu beachten wäre allerdings, dass die Ausgabe von $htmltext nicht mehr korrekt umgebrochen wird, weil nun die zum automatischen Umbruch benötigten Leerzeichen fehlen (da diese ja durch ersetzt wurden).
Warum willst Du Leerzeichen (" ") in nicht-umgebrochene Leerzeichen umwandeln?? Das ist ja wohl absolut nicht sinnvoll, wie Du schon selber schreibst. z.B.:
"ein langer Satz kommt hier" ->
"ein langer Satz kommt hier", was für den Browser wie ein langes Wort aussieht :(
Sinnvoller wäre es sicherlich, die Konvertierung der Leerzeichen ganz wegzulassen, oder erst ab 2 und mehr Leerzeichen hintereinander.
" " -> " "
" " -> " " usw.
Liebe Grüße
Martin
Tach auch!
Warum willst Du Leerzeichen (" ") in nicht-umgebrochene Leerzeichen umwandeln??
Nicht _ich_ wollte das, sondern _flasher_! Deswegen auch mein Hinweis!
Gruss
Lemmy
http://www.olison.com