Avatar billede brevkasserne Nybegynder
23. september 2002 - 15:21 Der er 29 kommentarer og
1 løsning

Flere <br> til ET <br>

Jeg har en gæstebog hvor brugere kan skrive ting og sager.
Heri er det sådan så hvis en bruger laver linjeskift kommer det med med denne kode:

$str = str_replace("\n", "<br>", $str);

Nu vil jeg gerne have at hvis brugeren laver to eller flere linjeskift så ses det kun som et. Så han ikke bare kan trykke på enter mange gange og dermed så fylder hans indlæg mere.
Avatar billede signout Nybegynder
23. september 2002 - 15:23 #1
Lav en replace \n\n med \n inden du laver om til <br>
Avatar billede limemedia Nybegynder
23. september 2002 - 15:23 #2
$str = str_replace("\n\n", "\n", $str);
$str = str_replace("\n", "<br>", $str);
Avatar billede limemedia Nybegynder
23. september 2002 - 15:24 #3
ét sekund *g*
Avatar billede signout Nybegynder
23. september 2002 - 15:24 #4
Ja, hér går det stærkt :)
Avatar billede ztyxx Nybegynder
23. september 2002 - 15:25 #5
det må være den asiatiske forsinkelse*LOL*
Avatar billede limemedia Nybegynder
23. september 2002 - 15:28 #6
ztyxx >> desværre ikke helt - den er pt 450ms... Men da eksperten afrunder halve point må den også .......
Avatar billede ztyxx Nybegynder
23. september 2002 - 15:30 #7
hmmm, er der ikke længere til Japan end 450ms, jeg tror squ at jeg snupper middagen i Tokyo i aften så*LOL*

soryy jeg spammer, stopper med dette indlæg :-)
Avatar billede brevkasserne Nybegynder
23. september 2002 - 15:33 #8
Det skal være hvis der er 2 ELLER FLERE, altså ikke bare med 2 kun.
Hvis nu han laver 4 linjeskift vil der alligevel komme 2 linjeskift. Den skal bare lave alle de linjeskift om der er så der kun er 1 IALT!
Avatar billede signout Nybegynder
23. september 2002 - 15:34 #9
Det vil den da vist også gøre - har du prøvet det i praksis?
Jeg vil formode at den tager 1 char af gangen i og erstatter - derefter tager den næste osv.
Correct me if I'm wrong
Avatar billede limemedia Nybegynder
23. september 2002 - 15:38 #10
det her virker

$str = preg_replace("/(\n)+/", "\n", $str);
$str = nl2br($str);
Avatar billede limemedia Nybegynder
23. september 2002 - 15:39 #11
signout >> testede lige vores, den efterlader reelt to fordi den ikke kigger på det den allerede har konverteret.
Avatar billede limemedia Nybegynder
23. september 2002 - 15:42 #12
nu jeg lige tænder tænkeren for et sekund, kan du også skrive

$str = preg_replace("/(\n)+/", "<br>", $str);
Avatar billede signout Nybegynder
23. september 2002 - 15:43 #13
Øvs - det virker stort set alle andre steder at benytte den metode. Men det gør vel reelt ser ikke noget at man kan lave 2 i træk. Det gør kun teksten mere overskuelig hvis man kan lave 2, og dermed lave flere afsnit.
Det må brevkasserne afgøre
Avatar billede bullfraged Nybegynder
23. september 2002 - 15:44 #14
ville det ikke være smartere at bruge: nl2br($str), da du så ikke behøver at tænke på str_replace...?

Her er yderligere information om nl2br: http://www.php.net/manual/en/function.nl2br.php
Avatar billede bullfraged Nybegynder
23. september 2002 - 15:44 #15
hehe, jeg skulle vist ha' opdateret inden jeg skrev... :)
Avatar billede lauer Nybegynder
23. september 2002 - 15:57 #16
http://www.lauer.dk/scripts/eksperten.dk/spm233484.php

et script jeg lavede til en anden med samme problem herinde på eksperten.

lauer
Avatar billede brevkasserne Nybegynder
23. september 2002 - 16:04 #17
denne virker fint:

$str = preg_replace("/(\n)+/", "<br>", $str);

men jeg ville gerne have at man kan lave max 2 linjeskift så man kan lave afsnit, ligesom her på eksperten.dk...

Men det skal også være max 2 linjeskift... :-)

Håber ikke at jeg er til for meget besvær!
Avatar billede limemedia Nybegynder
23. september 2002 - 16:10 #18
brevkasserne, besvær nej - men dejligt hvis du gad skrive hele spørgsmålet i starten så vi ikke sidder og knopskyder forskellige løsninger.
Avatar billede brevkasserne Nybegynder
23. september 2002 - 16:11 #19
Selvfølgelig, men tænkte ikke rigtig over det i starten :-)
Avatar billede limemedia Nybegynder
23. september 2002 - 16:12 #20
uden test
$str = preg_replace("/\n(\n)+/", "<br>", $str);
Avatar billede limemedia Nybegynder
23. september 2002 - 16:16 #21
glem den, virker ikke helt alligevel
Avatar billede brevkasserne Nybegynder
23. september 2002 - 16:31 #22
ingen der har en idé til det????
Avatar billede limemedia Nybegynder
23. september 2002 - 16:36 #23
$str = nl2br(preg_replace("/\n(\n)+/", "\n\n", $str));
Avatar billede brevkasserne Nybegynder
23. september 2002 - 16:43 #24
Skal jeg ikke lave \n om til <br>???
Avatar billede limemedia Nybegynder
23. september 2002 - 16:45 #25
nej
Avatar billede brevkasserne Nybegynder
23. september 2002 - 16:48 #26
så laver den jo <br /> istedet for <br>, kan man ikke sætte den til at lave det om til <br>...
Så hvis der er 2 eller flere bliver det <br><br> og hvis der kun er et bliver det bare <br>
Avatar billede brevkasserne Nybegynder
23. september 2002 - 16:50 #27
jeg tror dette virker:

$str = preg_replace("/\n(\n)+/", "<br><br>", $str);
$str = str_replace("\n", "<br>", $str);

det ser i hvert fald sådan ud, er der nogen der kan se nogen fejl i dette...?
Avatar billede limemedia Nybegynder
23. september 2002 - 16:54 #28
<br /> er også XHTML 1.0 complient, og virker i alle gængse browsere.
Avatar billede brevkasserne Nybegynder
23. september 2002 - 16:55 #29
men tror du ikke dette også virker fint?

$str = preg_replace("/\n(\n)+/", "<br><br>", $str);
$str = str_replace("\n", "<br>", $str);
Avatar billede brevkasserne Nybegynder
23. september 2002 - 16:55 #30
du får lige point...
Takker for alle svar!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester