Mailinglisten-Archive |
Michael Borchers wrote: > Klingt schlimmer als es ist:) > > Ich habe eine RTF File mit Platzhalter wie in Smarty {$mailing.name}. > > Nun möchte ich alle Platzhalter im RTF finden und mit den Spaltern aus der DB ersetzen. > > z.B.: > DB: 'name' = 'Mr. Foo' > > -> {$mailing.name} => 'Mr.Foo'; > > Es können beliebig viele Platzhalter werden und die DB Spalten sind nicht bekannt. > > Gibt es da ne schnell explode oder replace Lösung?! Ich denke mal $mailing sieht so aus: array ( 'spalte1' => 'wert1', ... ) wie das bei so DB Ergebnissen eben so der Fall ist. Dann machst du einmal: $search =array_keys($mailing); foreach($search as &$v) $v ='{$mailing.'.$v.'}'; $replace =array_values($mailing); Dann hast du 2 arrays: $search: Array ( [0] => {$mailing.spalte1} [1] => {$mailing.spalte2} ) $replace: Array ( [0] => wert1 [1] => wert2 ) Und das kannst du dann einfach auf deine Datei loslassen: $neu =str_replace($search, $replace, $alt); wobei $alt der inhalt deiner RTF-Datei ist. Wenn in RTF $ oder { oder sonstwas irgendwie escapt werden muss, musst du das natürlich hier auch tun. Schau dir die rtf-Datei eben mal in 'nem (Hex-)editor an. Yannik
php::bar PHP Wiki - Listenarchive