Avatar billede fcknet Nybegynder
23. august 2004 - 17:13 Der er 5 kommentarer

Køre nl2br() på del af tekst

Jeg har en streng, $str.
På denne skal der køres funktionen nl2br() på hele teksten UNDTAGEN de dele af teksten som er pakket ind i [html] og [/html]

altså et eks:

Tekst her bla bla bla bla bla :D
[html]og lidt html <br>[/html]
Lidt mere tekst :D

Vil altså komme til at se noget i nærheden af således ud:

nl2br(Tekst her bla bla bla bla bla :D)
[html]og lidt html <br>[/html]
nl2br(Lidt mere tekst :D)

Hvis I forstår hvad jeg mener? ;)
Avatar billede exp Juniormester
23. august 2004 - 18:56 #1
Tror det nemmeste vil være at splitte strengen op i 3 dele, fx vha. reg.exp, og så køre nl2br på de strenge, der ikke indeholder htmlkodes
Avatar billede fcknet Nybegynder
23. august 2004 - 19:00 #2
hvordan gøres det?
Avatar billede exp Juniormester
23. august 2004 - 19:06 #3
ja... det må der vist en anden til at svare på :-)
Avatar billede dennismp Nybegynder
23. august 2004 - 19:53 #4
Altid sjov med en udfordring :-)

http://dennis.moellegaard.dk/v4/php/532204.php
http://dennis.moellegaard.dk/v4/php/532204.php?source=2

Der er sikkert fejl i, men det er da en start.
Avatar billede coderdk Praktikant
24. august 2004 - 11:56 #5
hehe enig dennis, her er en anden løsning - Jeg elsker PCRE ;)

<?php

    $txt = <<<STOP
dette er en text
dette er også en test!
[html]dette er html,
eller noget :P[/html]
dette er en text
dette er også en test!

STOP;

    $split = preg_split( "/(\[html\].*?\[\/html\])/si", $txt, -1, PREG_SPLIT_DELIM_CAPTURE );
    $n = count( $split );
    for( $i = 0; $i < $n; $i++ )
    {
        if ( !preg_match( "/^\[html\].*?\[\/html\]$/si", $split[ $i ] ) )
        {
            $split[ $i ] = nl2br( $split[ $i ] );
        }
    }
    $nytxt = implode( '', $split );
   
    echo "<b>Original</b><br /><pre>";
    echo htmlentities( $txt );

    echo "</pre><b>Ny text</b><br /><pre>";
    echo htmlentities( $nytxt );
    echo "</pre>";

?>
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