/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
myNl2br
Fra : Lars Olesen


Dato : 31-01-04 08:42

Jeg har nogle tekstfelter, hvor man gerne må bruge nogle udvalgt
html-tags, fx <p> og <ul> og <li>, men man behøver ikke.

Nu skal det være muligt at lave linieskift, og når man ikke bruger
htmltags, er nl2br jo en god ven, men den er knap så god, når nu man må
bruge disse block-elementer.

Derfor har jeg forsøgt at lave min egen funktion, der ikke laver
linieskift <br /> efter html-elementer, men gør det ellers. Den virker
imidlertid ikke særlig godt, når jeg får noget ud af en database. Som
jeg har den lige nu sætter den ikke et dobbelt linieskift, selvom jeg
har valgt det:

function formater_tekstfelt($tekst) {

   $search = array("'([^(<.*?>)])\r\n'","'\n\r\n'");
   $replace = array("\\1<br/>\n","<br/>\n");

   $nytekst = preg_replace($search, $replace, $tekst);
   $nytekst = stripslashes($nytekst);
   return ($nytekst);
}

Og egentlig vil jeg gerne gøre det sådan, at funktionen kun undlader at
sætte linieskift efter de (block)html-tags jeg vælger. Hvad gør jeg så.
Jeg er ikke så skarp til regulære udtryk og preg_replace!

--
Lars Olesen
Vejle Idrætshøjskole <http://www.vih.dk>
Valider dine sider
<http://diveintomark.org/archives/2003/05/05/why_we_wont_help_you>
Søg i nyhedsgrupperne
<http://http://www.google.dk/grphp?tab=wg&q=&ie=UTF-8&oe=UTF-8&hl=da&meta=>

 
 
Kristian Thy (31-01-2004)
Kommentar
Fra : Kristian Thy


Dato : 31-01-04 08:47

Lars Olesen uttered:
> Nu skal det være muligt at lave linieskift, og når man ikke bruger
> htmltags, er nl2br jo en god ven, men den er knap så god, når nu man må
> bruge disse block-elementer.
[snip]
> Og egentlig vil jeg gerne gøre det sådan, at funktionen kun undlader at
> sætte linieskift efter de (block)html-tags jeg vælger. Hvad gør jeg så.
> Jeg er ikke så skarp til regulære udtryk og preg_replace!

Hvad med først at køre det gennem nl2br() og så replace <div><br/> med
<div> etc. - hvis det kun er tre tags der er tilladt skulle det jo
være overkommeligt.

\\kristian
--
Of course you're not a number. Now what's your IP address?

Kristian Thy (31-01-2004)
Kommentar
Fra : Kristian Thy


Dato : 31-01-04 08:52

Kristian Thy uttered:
> Hvad med først at køre det gennem nl2br() og så replace <div><br/> med
><div> etc. - hvis det kun er tre tags der er tilladt skulle det jo
> være overkommeligt.

Talking to myself...

function mynl2br( $input, $blocks = array("<div>","<p>") ){
$result = nl2br( $input );
foreach( $blocks as $b ){
$result = ereg_replace( $b."<br/>", $b, $result );
}
return $result;
}

\\kristian
--
Dyslexics of the world, untie!

Lars Olesen (31-01-2004)
Kommentar
Fra : Lars Olesen


Dato : 31-01-04 09:02

> Talking to myself...

Not only :D

> function mynl2br( $input, $blocks = array("<div>","<p>") ){
> $result = nl2br( $input );
> foreach( $blocks as $b ){
> $result = ereg_replace( $b."<br/>", $b, $result );
> }
> return $result;
> }

Ved du hvad, det var ikke en så dum ide at vende tankegangen lidt om. I
hvert fald har jeg god succes med fremgangsmåden. Dog måtte jeg lige
ændre <br/> til <br />. Jeg ved ikke om det er forskelligt, hvad php gør
ved nl2br? Eller det altid er det samme? Desuden var det naturligvis
nødvendig at tilføje </p> og </div>, for det er jo ofte der, man nødig
vil have linieskiftet!

--
Lars Olesen
Vejle Idrætshøjskole <http://www.vih.dk>
Valider dine sider
<http://diveintomark.org/archives/2003/05/05/why_we_wont_help_you>
Søg i nyhedsgrupperne
<http://http://www.google.dk/grphp?tab=wg&q=&ie=UTF-8&oe=UTF-8&hl=da&meta=>

Kristian Thy (31-01-2004)
Kommentar
Fra : Kristian Thy


Dato : 31-01-04 10:17

Lars Olesen uttered:
> Dog måtte jeg lige ændre <br/> til <br />. Jeg ved ikke om det er
> forskelligt, hvad php gør ved nl2br? Eller det altid er det samme?

Du kan ændre "<br/>" til "<br[ ]{0,1}/>", så skulle den fange begge
dele.

\\kristian
--
PROGRAMMER [n]: a device for converting coffee into software.

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408934
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste