Ciao,
ho un problema con la funzione replace, in pratica definendo le occorrenze in un array alcune di queste non vengono rimpiazzate.
Vengo ad un esempio:
in un TextArea posso inserire un comando per far visualizzare delle faccine (smile) con i rispettivi comandi:
@1 @2 @3 ...@10....@20
e quindi con una funzione interna sostituisco i comandi con dei tags per immaggini.
ora la funzione replace, quando si troverà di fronte i comandi che vanno da @10 a @20 non li riconoscerà mai, in quanto nell'array sono presenti anche i comandi che vanno da @1 a @9 e visto che @10 e @20 iniziano rispettivamente con 1 e 2 , la funzione replace li considera come @1 e @2, questo perchè non cerca le occorrenze come parole esatte ma come parte del contenuto di una parola.
Non ho la possibilità di cambiare i comandi devono per forza esseri così, qualche suggerimento ?
ho postato il codice:
Codice PHP:
$topic = "You should eat @1 fruits, vegetables, and @3 every day.";
$smileCode = array('@1', '@2', '@3', '@4', '@5', '@6', '@7', '@8', '@9', '@10', '@11', '@12', '@13', '@14', '@15'); //ecc. fino a venti
$tags = array( '[img].\smile\smile_01.gif[/img]',
'[img].\smile\smile_02.gif[/img]',
'[img].\smile\smile_03.gif[/img]',
'[img].\smile\smile_04.gif[/img]',
'[img].\smile\smile_05.gif[/img]',
'[img].\smile\smile_06.gif[/img]',
'[img].\smile\smile_07.gif[/img]',
'[img].\smile\smile_08.gif[/img]',
'[img].\smile\smile_09.gif[/img]',
'[img].\smile\smile_10.gif[/img]',
'[img].\smile\smile_11.gif[/img]',
'[img].\smile\smile_12.gif[/img]',
'[img].\smile\smile_13.gif[/img]',
'[img].\smile\smile_14.gif[/img]',
'[img].\smile\smile_15.gif[/img]');
//ecc. fino a venti
$newCode = str_replace($smileCode, $tags, $topic);
echo "$newCode";