Ik wil in php de spaties verwijderen in een tekst die voor <br /> of </p> staan.
Voorbeeldje:


<p>Iris: <br /><br />Het is dus belangrijk dat kinderen al op jonge leeftijd in aanraking komen met seksuele voorlichting. <br /><br />Die verantwoordelijkheid ligt deels bij de docenten van het basisonderwijs. <br /><br />Zij worden opgeleid op de Pabo. <br /><br />Organisatie 10voordeleraar is een samenwerkingsverband tussen leraren van onder andere de PABO. </p>
<p>Zij doet aanbevelingen om een ideaal lespakket op te stellen. </p>
<h4>COMPLEET</h4>
<h6>Clip: ITEM_PABO_TVU2.mp4<br />Tijd: 2.51 + 00.03<br />LW: werkveld in gaan</h6>
<h4>CAM 4 TOTAAL SHOT</h4>
<p>[KORTE REACTIE GAST]</p>


In de eerste zin staat achter Iris: een spatie, die zou dus weg moeten. Net als achter het woord voorlichting.
En achter de zin ...ideaal lespakket op te stellen </p>

Iemand tips?
trim()
Ik gebruik nu het volgende, maar het werkt nog niet. Enig idee hoe dat kan?


<?php
$string = "<p>Iris: <br /><br />Het is dus belangrijk dat kinderen al op jonge leeftijd in aanraking komen met seksuele voorlichting. <br /><br />Die verantwoordelijkheid ligt deels bij de docenten van het basisonderwijs. <br /><br />Zij worden opgeleid op de Pabo. <br /><br />Organisatie 10voordeleraar is een samenwerkingsverband tussen leraren van onder andere de PABO. </p>
<p>Zij doet aanbevelingen om een ideaal lespakket op te stellen. </p>
<h4>COMPLEET</h4>
<h6>Clip: ITEM_PABO_TVU2.mp4<br />Tijd: 2.51 + 00.03<br />LW: werkveld in gaan</h6>
<h4>CAM 4 TOTAAL SHOT</h4>
<p>[KORTE REACTIE GAST]</p>";

$nieuw = trim($string, " ");

echo $nieuw;
?>
Als je deze beide uitzonderingen wilt aanpassen in een source:
$source bevat de tekst of broncode

$source = str_replace( ' <br/>', '<br/>', $source);
$source = str_replace( ' </p>', '<p>', $source);

Dus een spatie toevoegen bij het eerste variabeleveld. Voluit geschreven 'spatie<br/>'
Reg-ex to the rescue:
$str = preg_replace('/\s+<(\\/p|br)\\b/','<$1',$str);

Deze regular expression (reg-ex) vervangt alle:
- white-space ("\s+")
- die gevolgd wordt door een "<"
- die weer gevolgd wordt door "/p" of "br"
- die weer gevolg wordt door een "word break" (in dit geval dus "iets anders dan een letter" - maar zonder deze letter)
door:
- een "<" teken
- de tekst van punt 3 ("/p" of "br") - dit is de eerste "back reference" (een stuk tussen haakjes) uit de reg-ex, vandaar die $1
En weg is uw white-space!

Strip whitespace (or other characters) from the beginning and end of a string.


Eigenlijk moet je een procedure hebben due spties voor tags verwijdert.

Reageren