Ik probeer een regular expression los te laten op een string, die een html element zoekt en zijn inhoud terug geeft.

Dus de regex op <p attribute="value">test</p> zal test terug moeten geven.

Nu heb ik het volgende maar geeft een lege array terug:
<?php $elm = 'p';
preg_match_all( '!<'.$elm.' [^>]*>.*?</'.$elm.'>!si', $this->output, $matches );
print_r( $matches ); ?>

Hoe vang ik nu de inhoud af?
<?php
$element = 'p';
$element = preg_quote($element);
preg_match_all('#\<' . $element . '.*\>(.*)\<\/' . $element . '\>#ismU', $this->output, $matches, PREG_SET_ORDER);
echo '<pre>';print_r($matches);echo '</pre>';
?>

Inhoud van het element staan nu op index 1 van elke row in $matches. Denk eraan dat als je om een of andere reden geneste elementen hebt, je recursie moet gaan gebruiken.
@Agirre
Hartelijk dank! Werkt perfect.

Reageren