ho scritto questo codice:
che praticamente mi scorre un array e sostituisce ogni occorrenza del tipo <% QUALSIASI_COSA %> con l'omonima variabile e fin qui tutto bene...codice:foreach ($array[$k] as $sK=>$sV) { $str=preg_replace("#(.+)(<% $sK %>)(.+)#s","\${1} $sV \${3}",$str); }
la cosa che non capisco è come mai le sostituzioni me le fa tutte, ma quando sono più di una per ogni stessa variabile non me mi fa solo l'ultima.
ad esempio, in questo codice mi fa tutti i dovuti replace:
<tr>
<td><% NEWS_ID %></td>
<td><% TITOLO %></td>
<td><% SOTTOTITOLO %></td>
<td>modifica</td>
<td>cancella</td>
</tr>
mentre se il testo lo trasformo così:
<tr>
<td><% NEWS_ID %></td>
<td><% TITOLO %></td>
<td><% SOTTOTITOLO %></td>
<td><% TITOLO %></td>
<td>cancella</td>
</tr>
mi ritrovo ad avere sostituito solo l'ultima occorrenza di TITOLO...sapete spiegarmi come mai?
forse perché in $array[$k] la chiave TITOLO ( così come ogni altra chiave ) compare una sola volta? se si come posso risolvere? avete una qualche idea? magari ottimizzando anche il codice facendolo senza il foreach se si può fare.
Qualsiasi idea è ben accetta! Grazie mille in anticipo!![]()