Ok ricominciamo da 0.

ho due array, uno contenente le parole da sostituire (esempio: zypp0 e zypp02) e il secondo con ciò che verrà messo al posto dei valori del primo array (che potrebbe essere: [ url = http://ciao.it ]@zypp0[ / url ] e @zypp02), il problema è quindi che se faccio uno str_replace in zypp02 'zypp0' viene sostituito mentre NON dovrebbe. Quindi con preg replace si può fare ciò? Ovvero sostituire due array come ho specificato..

Per capirci in codici:

Codice PHP:
 $primo = array('@zypp0','@zypp02');
$secondo = array('<a href="sito.it">@zypp0','@zypp02');
$frase "Ciao @zypp0, ciao @zypp02";

echo 
str_replace($primo$secondo$frase); 
Così verrebbe fuori:

"Ciao @zypp0, ciao @zypp02"

Mentre dovrebbe venir fuori:

"Ciao @zypp0, ciao @zypp02"

E ripeto che sono due array con valori a me SCONOSCIUTI.