hromadné nahrazení textu

Jak by šlo pls udělat pokud mám textové smajlíky a nahrazuji je adresami jejich grafických protějšků, takže třeba
*1* za <img src="1.gif">
*2* za <img src="2.gif">
Zatím používám fci str_replace ale to je trochu nepraktické pokud je smajlíků třeba 150 tak tam mám 150x str_replace, takže jestli by šlo nějak udělat aby je to nahradilo bez toho aniž bych musel napsat 150x str_replace a nahrazovalo to čísla třeba jen od *1* do *150* (ale to už neni tak důležité)
díky
for ($i=1;$i<150;$i++):
str_replace("*$i*","<img src=\"$i.gif\">");
endfor;

Tak nejak. A urcite to jde pres RE, ale ty ja neovladam.
K tomu se může hodit funkce strtr s polem v atributu.
Okopírováno z manuálu:
$trans = array("ahoj" => "nazdar", "nazdar" => "ahoj");
echo strtr("nazdar lidi, řekl jsem ahoj", $trans);
Pokud ti jde jen o čísla, zde je RE:
echo preg_replace("/\*([0-9]+)\*/", "<img src=\"\\1.gif\" />", "Vlozeny smajlik *34* v podobe obrazku");
už sem to rozchodil, dik