Ik heb een string met wat paragrafen erin, die wil ik graag per stuk als losse array waarde hebben. Tot nu toe heb ik dit:

<?
$info = $contentcr[0]['fulltext'];

preg_match_all('%^(<p[^>]*>.*?</p>)$%im', $info, $infoarray);
$infoarrays = $infoarray;

print_r($infoarrays);
?>

Dit is bijvoorbeeld een string:
<?
<p>Afdeling: Bla &amp; Bla </p>
<p>Locatie: ‘Stadhuis Rotterdam’ – Coolsingel 40 Rotterdam</p>
<p>Klant: Ontwikkelings</p>
<p>Bedrijf: Rotterdam (OBR)Datum April 2013</p>
?>
Met de bovenstaande code, print hij het volgende:

<?
Array ( [0] => Array ( [0] =>
Bedrijf: Rotterdam (OBR)Datum April 2013

) [1] => Array ( [0] =>
Bedrijf: Rotterdam (OBR)Datum April 2013

) )
?>

Wat doe ik fout?
Je kunt de HTML afhandelen als een DOMDocument en daaruit alle <p>-tags verwerken als een DOMNodeList:


<?php
// HTML
$html = '
    <p>Afdeling: Bla &amp; Bla </p>
    <p>Locatie: Stadhuis Rotterdam  Coolsingel 40 Rotterdam</p>
    <p>Klant: Ontwikkelings</p>
    <p>Bedrijf: Rotterdam (OBR)Datum April 2013</p>
';

// DOMDocument
$dom = new DOMDocument;
$dom->loadHTML($html);

// DOMNodeList
$paragraphs = $dom->getElementsByTagName('p');

// Doe iets met de DOMNodeList
echo '<pre>';
foreach ($paragraphs as $paragraph) {
    echo $paragraph->nodeValue, PHP_EOL;
}
?>

Reageren