Ciao,

sto cercando di dare maggiore flessibilità al cliente nel invio delle email dal sito. (Semplice Newsletter).
Usando istruzione str_replace() posso sostituire ad esempio il campo {nome} con il Nome del utente a cui in questo momento si sta inviando il messaggio.

Codice PHP:
$message str_replace('{nome}'$db->f("first_name"), $message); 
dove db->f è una richiesta al database per "pescare" campo first_name nella db Users.

Qui tutto funziona bene, il problema sorge quando ho voluto dare la possibilità di inserire i prodotti dalla tabella Products con il seguente sistema-template: {prodotto_#} dove # qualsiasi numero, ad esempio {prodotto_34}

Codice PHP:
ereg("{prodotto_([0-9]+)}"$message$matches);
if (
$matches[1]) { $productid $matches[1]; } 
Dopo di che pesco tutto quello che riguarda il prodotto (SELECT * FROM Products WHERE product_id='$productid')

Poi ho questo:

Codice PHP:
$full_prodotto "" $dbp->f("product_name") . " " $dbp->f("product_desc") . " " $dbp->f("product_price") . "\n\n";
$message eregi_replace("{prodotto_([0-9]+)}"$full_prodotto$message); 
Se {prodotto_#} è unico nel messaggio tutto funziona bene, il problema sorge se l'utente inserisce più prodotti, {prodotto_12}, {prodotto_56}, in questo caso dal database viene pescato sempre lo stesso prodotto 2 volte.

Cosa mi conviene fare per controllare la variabile $message per la presenza di {prodotto_#} multipli?

Grazie in anticipo, spero che qualcuno mi illumini..