Hallo! Ik ben een template parser aan het maken en ik sla alle block-namen op in een array. Nu wil ik dat de blocks die in de array staan worden weergegeven en dat de andere worden verwijderd. Om de <!-- en --> rond de blokken te verwijderen heb ik deze code:
<?php
foreach($this->blokken as $blok)
{
$this->pagina = preg_replace("#\<!-- START : ".$blok[]."\-->(.*)\<!-- EINDE : ".$blok[]."\-->#si", "\\1", $this->pagina);
}
?>
In $this->blokken zitten alle block-namen. Vervolgens verwijder ik alle blocks die niet in de array stonden. Dat doe ik zo:
<?php
$this->pagina = preg_replace("#\<!-- START : (.*)\-->(.*)\<!-- EINDE : (.*)\-->#si", "", $this->pagina);
?>

Alleen werkt het niet! Zouden jullie kunnen helpen? Alvast bedankt!!
Ik heb het veranderd. De blocks worden nu wel verwijderd, maar niet weergegeven als ze in de array zitten.

Code om <!-- en --> weg te halen rond de blokken waarvan de naam in de array zit:
<?php
foreach($this->blokken as $blok)
{
$this->pagina = preg_replace("/<!-- START : ".$blok." -->(.+?)<!-- EINDE : ".$blok." -->/si", "\1", $this->pagina);
}
?>

Code om alle blocks weg te halen behalve de blocks waar de comment-tags al zijn weggehaal:
<?php
$this->pagina = preg_replace("/<!-- START : (.+?) -->(.+?)<!-- EINDE : (.+?) -->/si", "", $this->pagina);
?>

Kan iemand helpen?

Reageren