Avatar billede flodhesten Nybegynder
16. september 2009 - 19:17 Der er 5 kommentarer og
1 løsning

Hjælp til <p></p> og <br />

Hej.

Jeg har på mit website et kommentarsystem, hvor mine brugere kan udfylde et textarea. Jeg kunne godt tænke mig, at når der er to linjeskift, bliver det tolket sådan at der skal laves et nyt afsnit med <p>del 1</p><p>del 2</p>. Når der kun er et linjeskift, vil jeg derimod gerna have, at der bliver brugt <br />.

Et eksempel: Carsten skriver følgende besked:

_____________________


Hej du.

Det er vel nok dejligt vejr i dag.
Det er vi heldige med.

Farvel og tak.

___________________

Mit resultat skulle gerne blive:

___________________

<p>Hej du.</p>

<p>Det er vel nok dejligt vejr i dag.<br />
Det er vi heldige med.</p>

<p>Farvel og tak.</p>

___________________

Jeg håber, at spørgsmålet er forståeligt og at nogen har mod på at hjælpe mig.
Avatar billede net-base.dk Nybegynder
16. september 2009 - 20:21 #1
Ville det ikke kunne løses på nogen lunde denne måde?

start med at lave dit udtræk fra databases.

$query = mysql_query(......);
while( $row = mysql_query_array($query) ) {
echo "<p>";

$str = $row["text"];


$str = str_replace("\n\n","</p><p>",$str); // find først alle dobbelt linie skift og udskift dem med et nyt <p> tag

$str = str_replace("\n","<br>",$str); // find nu alle tilbage stående linie skift, der skulle  kun være enkelte linie skift tilbage.

echo $str;

echo "</p>";
}


/*
Kan ikke huske om det er \r\n eller \n der er ny linie, mener det er \n på apache og \r\n på IIS men hæng mig ikke op på det.
lav evt 2 tjek på om der skal laves <p> tag.
*/
Avatar billede flodhesten Nybegynder
16. september 2009 - 20:48 #2
Hmm.

Jeg tror at der går noget galt i denne linje:

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

Når der er to linjeskift i træk, laver den blot to <br><br>

Kan du lure om der er noget galt?
Avatar billede tjens Nybegynder
16. september 2009 - 21:17 #3
#2 Det er det med \r på microsoft platforme.

Prøv at indsætte

$str = str_replace("\n\r","\n",$str);

før de andre replace for at filtrere \r væk
Avatar billede net-base.dk Nybegynder
16. september 2009 - 21:18 #4
Det er nok fordi du skal bruge \r\n så.
Avatar billede flodhesten Nybegynder
16. september 2009 - 21:38 #5
Super. Tak for hjælpen, begge.

Svar venligst net-base.
Avatar billede net-base.dk Nybegynder
16. september 2009 - 23:53 #6
tjens -> Yeps, kunne bare ikke huske om det var \r\n hvilket det så åbenbart ikke var ;)
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