Toon posts:

[perl] enter in tekstvak in <br> veranderen

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik hep dus in een formuliertje
code:
1
2
3
4
5
6
7
8
9
10
$mes = $FORM{'message'};
$mes .= $config_commer;

&write_email($FORM{'to'},$FORM{'subject'},$FORM{'message'},$frommail,$fromname);

@mess = split /\n/, $mes;

foreach $line(@mess) {
   $mesa .= "$line<Br>";
}

en in me config page staat dit:
code:
1
2
3
4
$config_commer qq~
---------------------------------------------
Dit bericht is anoniem verstuurd met foxmail
~;

het verzenden gaat allemaal goed met die enters, maar ik heb een pagina waar op staat wat er verzonden is, en die is in html, dus dan vallen de enters weg, omdat html alleen <Br> ziet, maar het lukt dus niet met de code hierboven.

  • tomato
  • Registratie: November 1999
  • Niet online
code:
1
s!\r\n?|\n!<br/>!g

ofzo?

Verwijderd

Topicstarter
'k zal is effe kijken, dan moet je toch zo doen:
code:
1
$mes =~ s!\r\n?|\n!<br/>!g;

toch?
het is wel weer duidenlijk dat de perl mensen of nog liggen te :Z of dat ze tweakers nog niet gevonden hebben.

Verwijderd

Op donderdag 27 december 2001 12:14 schreef poepkind het volgende:
'k zal is effe kijken, dan moet je toch zo doen:
code:
1
$mes =~ s!\r\n?|\n!<br/>!g;

toch?
het is wel weer duidenlijk dat de perl mensen of nog liggen te :Z of dat ze tweakers nog niet gevonden hebben.
je kunt ook wel rustig wachten kerel, op deze manier helpen ze je helemaal niet!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

$mes =~ s/[\n\r]+/<BR>\n/;

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

wat ik gedaan heb, is de string escapen en dan '%20' vervangen door <br>. Werkt perfect! :)

het is overigens niet '%20', das de spatie volgens mij, maar dan moet je maar ff kijken wat het wel is... ben je snel genoeg achter (kan nu ff niet bij mijn code).

vergeet de nieuwe string niet te unescapen, btw.

Verwijderd

Topicstarter
Op donderdag 27 december 2001 12:20 schreef DJ_PP het volgende:

[..]

je kunt ook wel rustig wachten kerel, op deze manier helpen ze je helemaal niet!
sorry ome pieter ik heb er spijt van :+

Verwijderd

Topicstarter
Op donderdag 27 december 2001 12:38 schreef CyB3R het volgende:
$mes =~ s/[\n\r]+/<BR>\n/;
Daarmee veranderd ie alleen de eerste in <br> :(
Op donderdag 27 december 2001 13:25 schreef TrashNSk8 het volgende:
wat ik gedaan heb, is de string escapen en dan '%20' vervangen door <br>. Werkt perfect! :)
Sorry maar wat bedoel je met escapen en unescapen?
kan ik daar ergens een doc over lezen?

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Op donderdag 27 december 2001 14:31 schreef poepkind het volgende:

[..]

Daarmee veranderd ie alleen de eerste in <br> :(

[..]
umm sorry
s/[\r\n]+/<br>\n/g;
dan pakt ie ze allemaal :)

All my posts are provided as-is. They come with NO WARRANTY at all.


  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op donderdag 27 december 2001 15:20 schreef CyB3R het volgende:
s/[\r\n]+/<br>\n/g;
En stel dat ik nu twee enters achter elkaar in mijn tekst heb staan, dan converteert hij dat naar 1 <BR>...

Ik denk dat je beter:
code:
1
s/(\r|\n|\r\n)/<br>\n/g

kunt doen...

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Op donderdag 27 december 2001 15:49 schreef elnino het volgende:

[..]

En stel dat ik nu twee enters achter elkaar in mijn tekst heb staan, dan converteert hij dat naar 1 <BR>...

Ik denk dat je beter:
code:
1
s/(\r|\n|\r\n)/<br>\n/g

kunt doen...
edit:
het komt natuurlijk uit een form, dan zitten die enters er inderdaad in. Dit werkt:
s/[\r]*[\n]{1}/<br>\n/g;
code:
1
2
3
4
5
6
[marco@phoenix marco]$ cat foo.pl
#!/usr/bin/perl -w

$line = "foo\r\nbar\nmoof\n\nfoobar!\n";
$line =~ s/[\r]*[\n]{1}/<br>\n/g;
print $line;

Output:
code:
1
2
3
4
5
6
[marco@phoenix marco]$ perl foo.pl
foo<br>
bar<br>
moof<br>
<br>
foobar!<br>

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
dank u allen!

Het is gefixed. :)

Verwijderd

Op donderdag 27 december 2001 14:26 schreef poepkind het volgende:

[..]

sorry ome pieter ik heb er spijt van :+
het is vergeven mijn zoon :*:+

  • tomato
  • Registratie: November 1999
  • Niet online
Wat was er dan mis met mijn post :?

poepkind: het is wel weer duidenlijk dat de perl mensen of nog liggen te :Z of dat ze tweakers nog niet gevonden hebben.

:? Je zag toch zelf dat ik je antwoord gaf?

* tomato snapt het allemaal niet meer :Z
Pagina: 1