• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

preg_replace

Status
Für weitere Antworten geschlossen.

Sprotti

Neues Mitglied
Moinsens,

ich habe folgendes PRoblem.
Ich habe einen String, den ich mit pregmatch untersuchen möchte.
Die gefundenen regulären Ausdrücke sollen allerdings dann durch ausdrucksabhängige Variablen ersetzt werden.
in der Art:
PHP:
$output = preg_replace ("!\[(.*?)\]!", $row['$1'] ,$input);

Zum Beispiel sollte bei $input="[name], [vorname]" das Ergebnis
$output = "$row['name'], $row['vorname']" herauskommen.

Leider funzt das so nicht.
Hat jemand eine Idee?
 
hier nciht getestet, sollte aber gehen ^^

PHP:
// hier ne einfache funktion dafür
function str_replace_array_input($text, array &$replace) {
    foreach($replace as $key => $val) {
        $text = str_ireplace($text, '['.$key.']', $val);
    }
    return $text;
}

// und so wendest du die an

$text = 'Hallo [vorname] [name]!';

$query = mysql_query("SELECT `vorname`, `nachname` as name FROM user WHERE userID='1' LIMIT 0,1");
if(mysql_num_rows($query)) {
    $row = mysql_fetch_assoc($query);
    $text = str_replace_array_input($text, $row);
}

//Edit: ich habe es in php5 geschrieben wenns so nicht geht entferne das wort "array" aus der funktion und ändere str_ireplace in str_replace ^^ dann musst du aber drauf achten das die keys ni deinem array auch alle klein geschrieben sind und du alle strings klein geschrieben hast zwischen [ und ] wo es ersetzt werden soll ^^
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben