Ho risolto modificando

$val = str_replace( "&" , "&am p;" , $val );

in

$val = str_replace( "&" , "&am p;amp;" , $val );

ma anche se adesso lo script modifica corettamente i caratteri il validatore del w3c da ancora problemi...a rigurdo ho aperto un'altra discussione per chi fosse interessato...

http://forum.html.it/forum/showthrea...1#post11538161