bert: preg_replace php-code einfügen

Beitrag lesen

also:

Ansatzweise funktioniert es jetzt wie folgt:

function _get_news_now($matches) {  
	include("_db_sub_connect.php");  
	$newsquery = mysql_query("SELECT DATE_FORMAT(Datum, '%e.%c.%y') as Datum_tit, Inhalt, Titel, ID, Links, Subtitel, Kategorie, Pic_thumb, Pic, Pictext, Quelle, c FROM news WHERE ID='$matches[1]'");  
	include("_news_anzeigen.php");  
}  
  
function auto_replace($content) {  
	$search_for = array();  
	$replace_with = array();  
	$code_search_for = array();  
	$code_replace_with = array();  
  
	$search_for[] = '/\[hinfo\/(.*)\/\]/iU';  
	$replace_with[] = '<span class="hinfo_a">\1</span>';  
  
	[..]  
  
	echo preg_replace($search_for, $replace_with, preg_replace_callback('/\[news\/(.*)\/\]/iU', '_get_news_now', $content));  
}

Soweit, sogut.

Bleiben noch 2 Probleme:

1. Der Newsinhalt wird ganz am Anfang von $content eingefügt, steht also immer ganz oben auf der Seite, auch wenn der TAG erst später im Text auftaucht. Kann ich das trotz callback verhindern?

2. Wenn innerhalb der News TAGs wie etwa [hinfo/blabla/] auftauchen, sollen diese auch ersetzt werden. Dachte eigentlich, das wäre hier der Fall, da zunächst die callback aufgerufen wird und den code ersetzt und das Ergebnis dann mit dem normalen preg-replace "bearbeitet" wird.

Mein Bauchgefühl sagt mir irgendwie, dass die beiden Probleme zusammenhängen und man beides gleichzeitig beheben kann. Komme nur nicht drauf wie.

Danke nochmal für deine ausführliche Hilfe!