MSVerweigerer: RegExp: Teile eines Suchstrings in den Variablennamen einfügen

Hallo zusammen!

via preg_replace wird in einem String nach einem regulären Ausruck gesucht und dieser ersetzt. Das Problem dieser Geschichte ist, dass weiter vorne in einer Variable $imgX_type (X = 1-5) das Dateiformat definiert wird.

Das Ersetzen will ich so anstellen, dass dann auch die Variable $imgX_type vorkommt (gehen wir davon aus, dass X in \3 enthalten ist). Um meinen Wunsch noch anders zu schreiben: Das Ersetzen soll dieses Ergebnis bringen: ... $img\3_type ...

Welche Möglichkeiten habe ich da, dass das Ergebnis dann nicht so aussieht: "X_type" ?

Vielen Dank für jede schnelle Hilfe!

  1. Moin,

    Das Ersetzen will ich so anstellen, dass dann auch die Variable $imgX_type vorkommt (gehen wir davon aus, dass X in \3 enthalten ist). Um meinen Wunsch noch anders zu schreiben: Das Ersetzen soll dieses Ergebnis bringen: ... $img\3_type ...

    Der Modifizierer e sorgt dafür, dass das was als Ersatzstring angegeben ist als PHP-Code ausgeführt (nach dem Ersetzen der Backreferences) und das Ergebnis zur Ersetzung verwendet wird. (Damit sehr vorsichtig sein!)
    In PHP-Code kannst du auf Variablen deren Namen als Ausdruck verfügbar ist über ${ausdruck} (also zum Beispiel ${"img".$X."type"}) zugreifen.

    --
    Henryk Plötz
    Grüße aus Berlin
    ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
    ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~