o0 Skrevet 10. februar 2008 Del Skrevet 10. februar 2008 Jeg har en <form>, og i formen har jeg et text-area. Jeg vil at et linjeskift i text-area'en skal konverteres til en <br>. Noen som vet om dette kan gjøres? Lenke til kommentar
o0 Skrevet 10. februar 2008 Forfatter Del Skrevet 10. februar 2008 nl2br(); JA! Takk skal du ha! Lenke til kommentar
Gjest Slettet+1374861 Skrevet 10. februar 2008 Del Skrevet 10. februar 2008 I nyere versioner av PHP benytter nl2br() XHTML, så hvis du bruker HTML blir dette upraktisk.. Lenke til kommentar
BigJackW Skrevet 10. februar 2008 Del Skrevet 10. februar 2008 Om du bruker HTML: <?php function nlbr($str){ return str_replace("\n", "<br>", $str); } ?> Lenke til kommentar
Gjest Slettet+1374861 Skrevet 10. februar 2008 Del Skrevet 10. februar 2008 Om du bruker HTML: <?php function nlbr($str){ return str_replace("\n", "<br>", $str); } ?> Ble usikker på hvordan det der er jeg BigJackW.... Du vet at det der funker cross-OS? Er jo veldig varierende hvordan linjeskift blir håndtert i enkelte sammenhenger, iforhold til \r\n, \n\r, \r eller \n (vanligste er vel \r\n og \n). Skulle jeg laget en tilsvarende selv så hadde jeg nok automatisk tatt høyde for alle fire variantene, men mener du det der er nok? Lenke til kommentar
Jonas Skrevet 10. februar 2008 Del Skrevet 10. februar 2008 Ble usikker på hvordan det der er jeg BigJackW.... Du vet at det der funker cross-OS? Er jo veldig varierende hvordan linjeskift blir håndtert i enkelte sammenhenger, iforhold til \r\n, \n\r, \r eller \n (vanligste er vel \r\n og \n). Skulle jeg laget en tilsvarende selv så hadde jeg nok automatisk tatt høyde for alle fire variantene, men mener du det der er nok? Funker neppe, nei. Mener å huske at windows, unix og mac sender alle forskjellige linjeskift, men løsningen er veldig enkel i PHP. str_replace() støtter blant annet arrays i search-parameteret. function nltobr($var, $xhtml = FALSE){ if($var){ if($xhtml == FALSE){ $array = array("\r\n", "\n\r", "\n", "\r"); $var = str_replace($array, "<br>", $var); return $var; } else{ $array = array("\r\n", "\n\r", "\n", "\r"); $var = str_replace($array, "<br />", $var); return $var; } } else{ return FALSE; } } http://no2.php.net/manual/en/function.nl2br.php#80984 Lenke til kommentar
Gjest Slettet+1374861 Skrevet 11. februar 2008 Del Skrevet 11. februar 2008 (endret) * LF: Multics, Unix and Unix-like systems (GNU/Linux, AIX, Xenix, Mac OS X, etc.), BeOS, Amiga, RISC OS, and others * CR+LF: DEC RT-11 and most other early non-Unix, non-IBM OSes, CP/M, MP/M, DOS, OS/2, Microsoft Windows * CR: Commodore machines, Apple II family and Mac OS up to version 9 ... der LF står for line feed og CR for carriage return. Endret 11. februar 2008 av Slettet+1374861 Lenke til kommentar
vidarlo Skrevet 11. februar 2008 Del Skrevet 11. februar 2008 Ironisk nok ingen som bruker LF+CR Lenke til kommentar
Ståle Skrevet 11. februar 2008 Del Skrevet 11. februar 2008 Hadde det ikke vaert like greitt a brukt str_replace( '<br />', '<br>', nl2br( $text ) ) sa blir \r\n eller \n eller noe annet gjort om til <br /> av nl2br som virker. Lenke til kommentar
Ernie Skrevet 11. februar 2008 Del Skrevet 11. februar 2008 (endret) Ironisk nok ingen som bruker LF+CR Ville jo vært direkte ulogisk om noen gjorde det også. Utgangspunktet er skrivemaskiner, og de gjennomfører alltid «carriage return» før linjeskift (derav \r\n). Det finnes forøvrig en 4. metode, NEL eller next line med ASCI-kode 21 (eller 15hex), men den er rimelig utdatert sammen med \r. Jo, og en ting til. Såvidt jeg veit er \r alene ikke lovlig linjeskift i HTTP, og \r\n samt \n er de eneste former for linjeskift man skal treffe på. \r\n er forøvrig den foretrukne metoden, og man er ikke nødt til å regne \n alene som linjeskift. Gjelder vel også andre protokoller (FTP, SMTP ...) kan jeg tenke meg. Endret 11. februar 2008 av Ernie Lenke til kommentar
Gjest Slettet+1374861 Skrevet 11. februar 2008 Del Skrevet 11. februar 2008 Hadde det ikke vaert like greitt a brukt str_replace( '<br />', '<br>', nl2br( $text ) )sa blir \r\n eller \n eller noe annet gjort om til <br /> av nl2br som virker. Ser jo veldig ryddig ut forsåvidt, men på en måte så ender man vel da opp med å først se etter "\r\n" og "\n", rette opp de, for så å rette opp det du faktisk allerede da skulle ha fikset. Tipper det er mindre effektivt enn å gå rett på roten til ondskapen (øhh...) og fikse alle "\r\n" og "\n" rett til "<br>"... Mindre ryddig men da får man vel lage seg en metode istedenfor Lenke til kommentar
Ståle Skrevet 11. februar 2008 Del Skrevet 11. februar 2008 Men da ma du vel sjekke gjennom teksten 3 ganger selv, eller det er vel det nl2br gjor det ogsa. Men PHP er jo treigt, sa jeg vet ikke. Lenke til kommentar
Gjest Slettet+1374861 Skrevet 11. februar 2008 Del Skrevet 11. februar 2008 Men da ma du vel sjekke gjennom teksten 3 ganger selv, eller det er vel det nl2br gjor det ogsa. Men PHP er jo treigt, sa jeg vet ikke. Hehe, du har vel litt rett... Er vel muligens ett generellt problem med weakly typed språk... Vertfall hvis man går rett på ett, at man får ikke inntrykk av hva som ligger bak og hvordan det kan gjøre at ting går seinere... Lenke til kommentar
funkyboy Skrevet 13. februar 2008 Del Skrevet 13. februar 2008 <br /> kan jo brukes både i html og xhtml. I really don´t see the problem. Lenke til kommentar
Ståle Skrevet 13. februar 2008 Del Skrevet 13. februar 2008 Nei, du kan ikke bruke <br /> i HTML. Nettleseren rendrer det som linjeskift, for det er jo et linjeskift, men det er ikke lov i HTML. Det skal lukkes i XHTML, men ikke i HTML. Lenke til kommentar
FrodeNilsen Skrevet 13. februar 2008 Del Skrevet 13. februar 2008 Jeg har en <form>, og i formen har jeg et text-area. Jeg vil at et linjeskift i text-area'en skal konverteres til en <br>. Noen som vet om dette kan gjøres? Jeg håper at du har en plan for hvordan du skal vise teksten for sluttbruker igjen. Du har ikke lov til å benytte så mye som en tag i ett textarea, så hvis du skal vise teksten du nå får i ett textarea, må du fjerne <br> og erstatte det med \n, samt at du må sikre at alle elementer blir omskrevet til tekst. http://www.w3.org/TR/html401/interact/form...l#edef-TEXTAREA http://no2.php.net/manual/en/function.htmlentities.php Lenke til kommentar
funkyboy Skrevet 13. februar 2008 Del Skrevet 13. februar 2008 Nei, du kan ikke bruke <br /> i HTML. Nettleseren rendrer det som linjeskift, for det er jo et linjeskift, men det er ikke lov i HTML. Det skal lukkes i XHTML, men ikke i HTML. Uuups. My mistake, beklager så mye! Riktignok er det kun Netscape 3 som har problemer med <br />, og benytter man html4 isteden for xhtml, mister man jo uansett de fleste fordelene validering gir. Men det er jo en annen sak. Lenke til kommentar
o0 Skrevet 13. februar 2008 Forfatter Del Skrevet 13. februar 2008 Jeg har en <form>, og i formen har jeg et text-area. Jeg vil at et linjeskift i text-area'en skal konverteres til en <br>. Noen som vet om dette kan gjøres? Jeg håper at du har en plan for hvordan du skal vise teksten for sluttbruker igjen. Du har ikke lov til å benytte så mye som en tag i ett textarea, så hvis du skal vise teksten du nå får i ett textarea, må du fjerne <br> og erstatte det med \n, samt at du må sikre at alle elementer blir omskrevet til tekst. http://www.w3.org/TR/html401/interact/form...l#edef-TEXTAREA http://no2.php.net/manual/en/function.htmlentities.php du sier noe der... tenk hvis noen velger å skrive inn en haug med kode i boksen hadde jo vært greit med html on og off... det er til en slags skriblevegg der folk kan legge igjen kommentarer. nå lærer jeg kanskje noe nytt hvis jeg prøver meg på den htmlentities() greien... Lenke til kommentar
Ståle Skrevet 13. februar 2008 Del Skrevet 13. februar 2008 Du kan jo bare lagre det i databsaen med \n, og nar du skal vise det bruker du nl2br() Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå