Hi Forum
Das erste mal seit langem wieder mal ein Post von mir. Ich hoffe, dass ich im richtigen Forum damit ankomme...?
Auch wenn mir regex oft noch ein Rätsel sind (

), habe ich es doch geschafft, ein Pattern zu schreiben, welches (bis jetzt) wie erwartet funktioniert. Es soll mir aus einem String mit % markierte Wörter mit entsprechenden Array-Werten ersetzen (gefundene Strings dienen als Key). Nun möchte ich den Wert zusätzlich per date formatieren. Allerdings weigert er sich strikte, date noch auszuführen (trotz e am Ende des Search-Patterns, welches ja für den Array-Aufruf greift).
Gehe ich richtig in der Annahme, dass PHP hier lediglich den replace-Pattern als ausführbaren PHP-Code ansieht und deshalb die Ersetzung nicht vornimmt? Wenn ja, gibt es eine elegante Lösung, wie ich date ausführen lassen kann? Ich könnte das Datum auch gleich per Mysql formatieren lassen, allerdings hätte ich (wenn ich schon dran bin) gerne ne regex-Lösung.
Danke zum Voraus für Antworten!
PHP-Code:
<?php
function getOption($array,$value,$display)
{
$search = '/\%(\w+)/e';
$replace = '$array[\'\1\']';
$reg_value = preg_replace($search,$replace,$value);
$reg_display = preg_replace($search,$replace,$display);
return '<option value="'.$reg_value.'">'.$reg_display.'</option>';
}
//Aufruf:
$werte = array();
$werte['eins'] = "value";
$werte['zwei'] = "blub";
$werte['drei'] = 978389940;
$option = getOption($werte,"id_%eins","Der mit dem %zwei");
echo $option;
//<option value="id_value">Der mit dem blub</option>
$option = getOption($werte,"das Datum: date(%drei)");
echo $option;
//<option value="id_value">das Datum: date(978389940)</option>
?>