webForumDet fria alternativet

Ta bort radbrytningar

PHP

8 svar · 816 visningar · startad av stattin

Medlem sedan jan. 2005713 inlägg
Frågan#1

Japp jag har sett att ämnet tagits upp förut men det besvarar inte riktigt mina bekymmer.

Jag sparar text från en textarea till en vanlig txt fil, problemet är att trots radbrytningar i texten så vill jag att texten ska sparas som en enda singel rad och ersätta alla radbrytningar med [br] eller något annat lämpligt.

Så:
Hej!\n
\n
Vilket vackert väder!

Blir:
Hej![br][br]Vilket vackert väder!

Jag har provat, googlat och sökt men inte hitta något bra svar.

Medlem sedan mars 2004455 inlägg
#2

Går det inte att göra något liknande som detta:

$minstr = "hejsan!\nHur är läget?\nHär är det bra.";
$str = "";
for($i=0;$i<strlen($minstr);$i++)
{
    if($minstr[$i] == '\n'){
        $str .= "[br]";
        continue;
    }
    $str .= $minstr[$i];
}

?

Medlem sedan jan. 2005713 inlägg
#3

Jag kan inte så mycke om PHP men jag tror att det finns smidigare lösningar än så där, replace, men jag har provat med det och radbrytningarna kommer med ändå (replace alltså). Men tack ändå för ditt svar och den tid du lagt ner.

Igår hitta jag på en egen lösning i javascript, innan jag skicka texten till filen så escapa jag texten och sen replaca jag alla radbrytningar.


texten = escape(document.wall.text.value)
texten = texten.replace(/%0D%0A/g, "!br!")

Och sen unescape() såklart. Nu när jag är lite piggare gämfört med igår natt så kan jag ju tänka mig att man kan göra ungfär samma sak i php, eller man kan göra samma sak + mycket mer.

Så jag nöjer mig nog med det så länge men det vore kul att höra en lösning i PHP också.

Medlem sedan sep. 20025 506 inlägg
#4

nl2br?

Medlem sedan juli 20023 617 inlägg
Medlem sedan mars 2004455 inlägg
#6

stattin, jag kan inte heller så mycket om php, jag skrev bara den kodbiten för jag trodde att den kunde hjälpa :) Men jag tror inte att det finns så mycket snabbare sätt att byta ut \n till br ändå.

Medlem sedan jan. 2005713 inlägg
#7

Mr. N. skrev:

nl2br?

visst men det ändrar inte texten till en singel rad

fiddler skrev:

Denna kanske: http://www.webforum.nu/showthread.php?p=1400539#post1400539

Ska kolla närmare..

yador skrev:

stattin, jag kan inte heller så mycket om php, jag skrev bara den kodbiten för jag trodde att den kunde hjälpa :) Men jag tror inte att det finns så mycket snabbare sätt att byta ut \n till br ändå.

Jodå bara som Mr N säger här ovan, nl2br(). Klart din kod funkar också. Tror jag? har inte provat den.

Medlem sedan mars 20041 505 inlägg
#8

Radbrytningar består av ett eller två tecken.
I Windows är det CR+LF. Sen kör väl resten endast LF.
Följande kod (otestad) söker igenom $string och ersätter CR med ingenting och LF med [br].

$pattern = array('/\r/', '/\n/');
$replacement = array('', '[br]');
preg_replace($pattern, $replacement, $string);

Hoppas det fungerar som du vill :h

Medlem sedan jan. 2005713 inlägg
#9

Troxy skrev:

Radbrytningar består av ett eller två tecken.
I Windows är det CR+LF. Sen kör väl resten endast LF.
Följande kod (otestad) söker igenom $string och ersätter CR med ingenting och LF med [br].

$pattern = array('/\r/', '/\n/');
$replacement = array('', '[br]');
preg_replace($pattern, $replacement, $string);

Hoppas det fungerar som du vill :h

Det där funka ju kanon, tack! :birp
Och alla ni andra som tagit er tid, tack ska ni ha ni också!

253 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)