Entfernung von CRLF aus einer Eingabe
Uli Weber
- perl
Hallo,
ich habe ein Prob. mit dem Entfernen von Zeilenvorschüben in den Texten aus einer Eingabemaske:
Der Text wird in einer definierten Zeile in einem Textfile abgelegt und soll später von genau dieser Stelle wieder abgerufen werden. Nun möchten etliche Mitarbeiter ihre Texte aber mit copy/paste einsetzen und da geht das Elend los: Die enthaltenen Umbrüche werden gnadenlos in den Textfile übernommen, so dass ich statt 5 auf einmal 25 Zeilen habe und nichts mehr wiederfinde.
Soweit ich die Sache verstanden habe, wirkt chomp ja nur am Zeilenende ... würde ein Ausdruck wie
$Text =~ s/??/ /g;
funktionieren (und wenn, was kann ich für ?? schreiben? ASCII?
Danke schonmal, Uli
Hallo Uli
$Text =~ s/??/ /g;
$Text =~ s/\r\n/ /g;
Oder wenn der Zeilenumbruch drinbleiben soll und die Eingabe später im Browser augezeigt werden soll:
$wunsch =~ s/(\r\n)(\n)/<BR>/g;
Steht übrigens auch in SelfHTML - Perl:reguläre Ausgrücke ;-)
Gruß Frank
Steht übrigens auch in SelfHTML - Perl:reguläre Ausgrücke ;-)
Jo, ich habe leider zuerst die falschen Suchbegriffe eingegeben, unter "Umbruch" stand noch ne Menge ...
trotzdem THX, Uli
Hallo Frank!
$Text =~ s/??/ /g;
$Text =~ s/\r\n/ /g;
Sorry, das stimmt so nicht. Du gehst davon aus, dass "\r" den ASCII-Wert 13 und "\n" den Wert 10 hat, was aber nicht unbedingt der Fall ist. Ausserdem schneidest Du nur CRLF (also DOS-Zeilenumbrueche) heraus (vermutlich weil es so im Subject steht), aber wenn das Formular von einer Unix-Kiste abgeschickt wird, wo nur ein einzelnes LF also Umbruch uebermittelt wird, laesst Du den Text unveraendert. Daher besser:
$Text =~ s/\015|\012//g;
Oder wenn der Zeilenumbruch drinbleiben soll und die Eingabe später im Browser augezeigt werden soll:
\r\n (Win) oder \n (UNIX) gegen <BR> tauschen
$wunsch =~ s/(\r\n)|(\n)/<BR>/g;
Besser: s/\015\012|\015|\012/<BR>/g;
(siehe <../../sfarchiv/2000_2/t13138.htm#a67383> und von dort verlinkte)
So long
Hallo Calocybe!
Sorry...
Brauchst Dich doch nicht zu entschuldigen, hast ja recht
dass "\r" den ASCII-Wert 13 und "\n" den Wert 10 hat
in den meisten Fällen stimmt es aber
CRLF (also DOS-Zeilenumbrueche) heraus (vermutlich weil es so im Subject steht)
genau
wenn das Formular von einer Unix-Kiste abgeschickt wird,
dafür sollte ja mein 2. Tipp sein.
Gruß Frank