preg_replace - komplexer?

gugug

Grünschnabel
Hallo zusammen,
ich möchte eine Funktion haben, die in einem Text patterns sucht ( {{pattern}} ) und diese durch mitgelieferte Arrayeinträge ($dataArray) ersetzt.
So wie ich's jetzt geschrieben habe funktioniert es noch nicht. Aber grundsätzlich zuerst die Frage, geht es überhaupt so elegant und einfach? oder muss ich irgendwo noch ein eval einfügen?
Vielen Dank im Voraus für eure Hilfe.
mfg
Felix
Code:
function addData($dataArray, &$textKomplett){
 
$pattern='/{{(\w+)}}/m';
$replace=$dataArray.'$1'.]->data;
 
$textKomplett= preg_replace($pattern, $replace, $textKomplett);
 
}
 
Hi,
evtl. hilft dir das weiter:

Code:
/e modifier makes preg_replace() treat the replacement parameter as PHP code after the appropriate references substitution is done. Tip: make sure that replacement constitutes a valid PHP code string, otherwise PHP will complain about a parse error at the line containing preg_replace(). 

<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e", 
              "'\\1'.strtoupper('\\2').'\\3'", 
              $html_body);
?>

This would capitalize all HTML tags in the input text.
 
Zuletzt bearbeitet:
Hallo nochmal,
vielen Dank für die rasche Antwort.
Diese Option wird benötigt. Und die genaue Syntax lautet so:
PHP:
function addData($dataArray, &$textKomplett)
{

	$pattern = '/{{(\w+)}}/me';
	$replace = '$dataArray["$1"]->data';

	$textKomplett = preg_replace($pattern, $replace, $textKomplett);

}
mfg Felix
 
Zurück