Tengo un problema tengo un cortador de palabras:

Código :

function recortar_palabra($palabra,$tam)
   {       
       if (strlen($palabra) > $tam-5)
      {
           $vector_aux = split(" ",$palabra);
         $acu = 0; $vector_acu = array();
         for ($i=0; $i < count($vector_aux); $i++)
         {
             $tam_pal = $acu + strlen($vector_aux[$i]);
             if ($tam_pal < $tam-5)
            {
                $vector_acu[] = $vector_aux[$i];
               $acu =  $tam_pal;
            }
            else
              break;
         }         
         return implode(" ",$vector_acu)." ...";
        }
        else
           return $palabra;        
   }


pero el problema que al llegar al numero que yo quiero puede cortar un dato HTML y como no cierra pues crea errores en la impresión, alguna idea?[/code]