WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   CGI/PERL-problem, nån vass kodare här? (https://www.wn.se/forum/showthread.php?t=14732)

danielholking 2006-06-19 21:00

Har ett script som hämtar variabler från ett formulär. För att få ut radbryt som HTML-kod finns en lösning som ser ut så här:

$FORM{'message'} =~ s/\n/
\n/ig;

Detta tar och kodar om ett radbryt till


Nu behöver jag hjälp med att koda tillbaka detta, dvs vända på varibeln. Att
återigen bara ska bli ett radbryt om variabeln innehåller
ska åter bli \n oavsett on det kommer från att någon skriver ett
i fältet eller om varibeln innehåller det redan. Utgå gärna från den jag skrivit här och förklara gärna hur du gjort.

Kan någon hjälpa mig vända den jätte-enkla varibel. Messa mig privat eller direkt här så är jag evigt tacksam och kan få klart mitt lilla script.

MvH
/Daniel Holking

PS! En Rocky-bok ligger i potten för först postade fungerande lösning! DS!

Per 2006-06-19 21:10

Kod:

$FORM{'message'} =~ s/<BR>/\n/ig;
Borde inte ovanstående fungera? Har inte knackat Perl på länge :)

danielholking 2006-06-19 21:19

Tyvärr gör den ju inte det, har provat den själv men den skapar enorma mellanrum mosvarande typ 3 st
.

Måste finnas någon annan metod....

koala 2006-06-19 22:05

Kod:

$FORM{'message'} =~ s/<BR>//ig;
inte för att jag programmerat PERL öht, men det borde nog funka, annars
Kod:

$FORM{'message'} =~ s/<BR>/ /ig;

Thomas 2006-06-19 23:27

Citat:

Tyvärr gör den ju inte det ...
Ett \n för lite va?

$FORM{'message'} =~ s/
\n/\n/ig;

Citat:

oavsett on det kommer från att någon skriver ett

Då skulle jag ändrat första kodsnutten till

$FORM{'message'} =~ s/\n/
/ig
;

för att sedan låta

$FORM{'message'} =~ s/
/\n/ig;

får tillbaks $FORM{'message'}. Annars förutsätts en radmatning efter varje
som skrivs direkt i textboxen.


Citat:

$FORM{'message'} =~ m/
\n/;


falskt.
hej
hej

sant
hej

hej

Nåt i den stilen iaf.

danielholking 2006-06-27 14:13

Fast då skrivs ju
ut som text vilket jag ju inte vill.

Första variabeln jag har tolkar ett radbryt som
och skriver in det. Sedan vill jag göra om det så att
försvinner och blir ett vanligt radbryt men det blir hittils av allt jag fått minst dubbla radbryt.

grazzy 2006-06-27 14:20

\n{0,2}

matchar 0,1 eller 2 radbrytningar, annars är ju \n* en höjdare som matchar 0 tom oändligt många radbrytningar. Vet inte riktigt om det hjälper.

danielholking 2006-06-27 14:46

Hur skulle hela raden bli då med det tillägget? Provade lägga in den i den jag har, då lägger den ett
efter varje bokstav, ett utskrivet
alltså. Mycket vackert, NOT.


Alla tider är GMT +2. Klockan är nu 03:45.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson