ah ah ah!!!
Con due righe mi hai fatto sistemare tutto quanto

Ora la funzione è diventata molto più breve e leggibile e funziona pure

codice:
// Recupera nome prodotto ed elimina tutti i tag html ritornando una stringa pulita ma troncata a 251 caratteri
function descrizione($db, $lang,  $id)
{
        $query = "SELECT * FROM `products_description` WHERE products_id = $id and language_id=$lang";
        $result = mysql_db_query($db,$query);
        $record=mysql_fetch_array($result);

        // Elimina i tags html
        $descrizione = strip_tags(str_replace('><', '> <', $record[3]));

        // Elimina gli spazi multipli
        $descrizione = preg_replace('/\s+/', ' ', $descrizione);

        // Elimina alcune spurie tag che la funzione precedente non toglie
        $descrizione=str_replace("nbsp;", "",$descrizione);
        $descrizione=str_replace("amp;", "",$descrizione);
        $descrizione=str_replace("&", "",$descrizione);

        // Ritorna i primi 251 caratteri della descrizione
        return substr(trim($descrizione),0,251);
}
Ti ringrazio moltissimo, sei stato molto gentile