Raccourcir le texte sans fractionnement des mots ou de la rupture de balises html

Je suis en train de couper du texte après 236 caractères sans couper les mots en deux et la préservation des balises html. C'est ce que j'utilise en ce moment:

$shortdesc = $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description');
$lenght = 236;
echo substr($shortdesc, 0, strrpos(substr($shortdesc, 0, $lenght), " "));

Tout cela fonctionne dans la plupart des cas, il ne respecte pas les balises html. Ainsi, par exemple, ce texte:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. <strong>Stet clita kasd gubergren</strong>

va me couper avec l'étiquette encore être ouvert. Est-il possible de couper un texte après 236 caractères, mais en respectant les balises html?

Quel est le résultat attendu ? Si vous voulez que le texte que vous pourrait priver les balises html ...
Vous devez utiliser un analyseur HTML[(php.net/manual/en/class.domdocument.php) pour cela, et compter tous les caractères dans textnode pour cela.
Supprimer les balises entièrement? preg_replace ("<[^>]*>", "", $shortdesc)
Google est une chose merveilleuse alanwhipple.com/2011/05/25/...
Essayez d'utiliser preg_split() pour fractionner le texte par tagged contenu.

OriginalL'auteur loeffel | 2013-05-16