function amprss($cont)
{
$cont = preg_replace("/&(?!(?i:\#((x([\dA-F]){1,5})|(104857[0-5]|10485[0-6]\d|1048[0-4]\d\d|104[0-7]\d{3}|10[0-3]\d{4}|0?\d{1,6}))|([A-Za-z\d.]{2,31}));)/", "&", $cont);
return $cont;
}
заменяет одиночные & на & игнорируя всяческие HTML сущности (< ' и др.)
регулярное выражение украдено отсюда: http://regexadvice.com/blogs/mash/archive/2005/01/26/323.aspx