Newline naar break tussen <p> en </p> tags

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

David Willems

David Willems

12/09/2010 17:10:47
Quote Anchor link
Ik zit al een tijdje met het volgende probleem:

Ik haal data uit een databank en ik wil de newlines (/n) vervangen door een break (<br />) MAAR enkel tussen <p> en </p> tags. Nl2br biedt hiervoor helaas geen oplossing omdat deze functie overal een break plaatst.

Een oplossing zou zijn om de functie preg_replace te gebruiken om de tekst tussen de <p> tags te vinden en hierop nl2br los te laten als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $string = preg_replace("#<p>(.+?)</p>#",nl2br("\\1"),$string); ?>


Maar helaas, dit werkt niet. De tekst staat er wel maar nergens werd een break toegevoegd. Het lijkt wel alsof nl2br niet werkt in die functie.

Heeft er iemand een oplossing voor mijn probleem?

Groetjes David
Gewijzigd op 12/09/2010 17:14:43 door David Willems
 
PHP hulp

PHP hulp

18/12/2024 08:50:51
 
Dalando De Zuil

Dalando De Zuil

12/09/2010 18:39:57
Quote Anchor link
Probeer eens zonder variable...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$string
= "ABC";

preg_replace("#<p>(.+?)</p>#",nl2br("\\1"),$string);

echo $string;
?>
 
David Willems

David Willems

12/09/2010 19:09:42
Quote Anchor link
Dalando De Zuil op 12/09/2010 18:39:57:
Probeer eens zonder variable...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$string
= "ABC";

preg_replace("#<p>(.+?)</p>#",nl2br("\\1"),$string);

echo $string;
?>


Dit werkt helaas ook niet :(
Heeft er nog iemand een idee?
 
Jan geen

Jan geen

12/09/2010 19:20:09
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$string
= "ABC";

$result = preg_replace("#<p>(.+?)</p>#",nl2br("\\1"),$string);

echo $result;
?>


zoiets?
 
David Willems

David Willems

12/09/2010 20:11:06
Quote Anchor link
Rik geen op 12/09/2010 19:20:09:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$string
= "ABC";

$result = preg_replace("#<p>(.+?)</p>#",nl2br("\\1"),$string);

echo $result;
?>


zoiets?

Ook dit doet het niet. Het ziet er gewoon naar uit dat de functie nl2br gewoonweg niets wijzigt.
 
SilverWolf NL

SilverWolf NL

12/09/2010 20:12:17
Quote Anchor link
Wat je nu doet is nl2br uitvoeren op de \\1, ik geloof dat het zo wel werkt:

Edit: e-modifier toegevoegd.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$string
= "ABC

<p>
a
b
</p>"
;
$string=preg_replace("#<p>(.+?)</p>#ise","'<p>'.nl2br('$1').'</p>'",$string);
echo $string;
?>


Let er wel op dat nu de enter na <p> ook gelijk omgezet wordt in een <br />. Als je dit niet wil zal je je regex moeten aanpassen...
Gewijzigd op 12/09/2010 20:22:08 door SilverWolf NL
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.