<img align e' deprecato come metodo, i browser nuovi potrebbero ignorarlo tranquillamente, si usano i css per gli allineamenti.
inoltre tutta quella funzione si poteva sostiuire con una sola regexp
$msg = preg_replace( "/(?i)\[img=([a-z]{3,6})\]([^\a]+?)\[\/img=\\1\]/" , "<img style=\"float: \\1; border: 1px solid black;\" src=\"\\2\" />" , $msg);