PHP Platzhalter mit Include Befehl ersetzen -> Parsen?

Mh, an eval(); hab ich auch schon gedacht.
Aber er liest ja nicht nur PHP Code aus der DB.
Und würd ich aus allem HTML ein echo machen, wäre eval ja auch ein Sicherheitsloch und würde des Parser unsinnig belasten.
 
Mh, an eval(); hab ich auch schon gedacht.
Aber er liest ja nicht nur PHP Code aus der DB.
Und würd ich aus allem HTML ein echo machen, wäre eval ja auch ein Sicherheitsloch und würde des Parser unsinnig belasten.
Nun eval find ich selber nicht das beste aber so wie du es angehst geht es nunmal nur mit eval.

Eine andere Strategie wäre mit preg_replace_callback().
In der callback dein plugin ausführen und dessen Ausgabe gebuffert in den html code als replace setzen.
 
Hallo,
ich hab das ganze nun so gelöst:
PHP:
      if(preg_match('/\[plugin\](.*?)\[\/plugin\]/', $text)) {
      preg_match_all('/\[plugin\](.*?)\[\/plugin\]/', $text,$plugins);
      $plugins = $plugins[1];
	$i = 0;
      do {
      require_once("application/plugins/$plugins[$i].php");
      $content = $plugins[$i]();

      $text = preg_replace("/\[plugin\]$plugins[$i]\[\/plugin\]/", $content, $text); 
	$i++; 
      } while($i < count($plugins)); 
      }
Ich danke für den Tipp mit den callback!
Darüber bin ich auf die Lösung gekommen :)
Danke.
 
Zurück