Avatar billede hawkmoon Nybegynder
28. august 2003 - 09:52 Der er 4 kommentarer og
1 løsning

Lav linieskift til <br> (kun nogen steder)

PHP har en nl2br-funktion, men jeg skal kun erstatte linieskift, når linien ikke slutter med et html-tag.

function formater_tekstfelt($tekst) {
$search = "'[^(<.*?>)](\r\n)'";
$replace = "\\1<br/>\n";
return preg_replace($search, $replace, $tekst);
}

Ovenstående snapper det sidste tegn i en linie, hvor der er enkelt linieskift.

Hvis jeg bytter om på \r og \n snupper den ikke det sidste tegn, men laver heller ikke <br/>.

Anyone?
Avatar billede hawkmoon Nybegynder
28. august 2003 - 15:06 #1
Det burde ikke være så besværligt...
Avatar billede netro Nybegynder
05. september 2003 - 03:34 #2
Mit forslag er følgende:

Function Skift(Streng)
    Set Regex = New RegExp
    Regex.Global = True
    Regex.IgnoreCase = True
    Regex.Pattern = "[^>\r\n]{1,1}[\r\n]{1,1}"
    Set Matches = Regex.Execute(Streng)
    For Each Match In Matches
      Match = Match.Value
      Streng = Replace(Streng, Match, Left(Match, 1) & "<br>")
    Next
    Skift = Streng
End Function

Respones.Write Skift("blablabla>" & vbCrlf & "blablabla" & vbCrlf & "blablabla")

- returnerer:

blablabla>blablabla
blablabla
Avatar billede hawkmoon Nybegynder
05. september 2003 - 08:54 #3
Det så lovende ud, men når jeg har oversat dit VB-script til PHP,  snupper stadig sidste bogstav i linien... Måske er den tekst jeg hiver ud af databasen med \n og ikke \n\r. Jeg undersøger...
Avatar billede hawkmoon Nybegynder
05. september 2003 - 09:12 #4
Jeg har fundet ud af det. Mit problem var paranteser i pattern
det skulle ændres til:

$search = "'([^<.*?>]\r\n)'";
eller modificeret til dit forslag:

$search = "'([^>\n]{1}[\r]{1})'";

Men tak for dit indlæg...
Avatar billede netro Nybegynder
05. september 2003 - 14:58 #5
Altid :)
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
Kurser inden for grundlæggende programmering

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