Salve a tutto lo staff ed agli utenti.
Arrivo subito al dunque.
Ho queste 2 funzioni :
1 - ereg("<\[foreach\]>(.+)<\[\/foreach\]>",$string,$matches)
2- ereg_replace("<\[foreach\]>.+<\[\/foreach\]>","<[foreach$i]>",$value);
Adesso, queste funzioni vanno bene fino alla ultima release di php 5.2.x.
Dalla versione 5.3 di php queste 2 funzioni sono deprecate e sono state sostituite ripettivamente da :
1- ereg(......,.....,....) =>preg_match(....,...,....);
2- ereg_replace(...,...,...) => preg_replace(...,....,....);
Ho provato ad eseguire la sostituzione della prima funzione(ereg() to preg_match()), ma non ottengo il risultato, ossia se faccio il print_r($matches) di preg_match, l'array è vuoto, mentre quello di ereg è corretto.
Credo che il problema sia quel " (.+) " che non riesco a gestire con preg_match.
Questo (.+) non significa "almeno un qualsiasi carattere tra <[foreach]> e <[/foreach]>" ?
Qualcuno mi può dare gentilmente una mano a capire dove sta il problema o se si puo sostituire la regexp in modo tale da ottenere lo stesso risultato?
Ci ho perso un po di ore, senza risultato, quindi al momento, mi rimetto con la versione php 5.2.11, nella speranza di poter risolvere al piu presto.
Grazie a tutti per la disponibilità.
A presto
E.