Una alternativa es utilizar expresiones regular para realizar el reemplazo, te dejo un pequeño ejemplo:
Código PHP:
<?php
$words[] = ".. [size=8]Diego[/size] xD";
$words[] = ".. [size=18]Juan[/size] :P";
$words[] = ".. [size=22]deerme.org[/size] Dx";
foreach( $words as $k => $v )
{
echo preg_replace( "/\[size=(\d+)\](.*?)\[\/size\]/" , "<span style='size:\$1px'>\$2</span>" , $v )."\n";
}
Respecto al uso, hay bastante documentación al respecto así que puedes googlear.
Saludos.