Soyez le premier à donner votre avis sur cette source.
Snippet vu 25 705 fois - Téléchargée 31 fois
function YMA_Resume($description,$lng=250,$nxtstr='?') { if ((strlen($description) <= $lng) OR ($lng <= 0)) { $res = $description; } else { // Longueur minimum du résumé $minLng = ceil($lng*1/2)+1; $lstPt = $lstComa = $lstQuote = $lstDblPt = 0; $mots = explode(' ',$description); $res = $mots[0]; $nbMots = count($mots); $i = 1; // On reconstruit le texte mot par mot while($i < $nbMots) { $lenRes= strlen($res); $lenMot=strlen($mots[$i]); if (($lenRes+1+$lenMot) <= $lng) { $res = $res.' '.$mots[$i]; if ($lenRes > $minLng) { $lstChar = substr($mots[$i],-1); if ($lstChar == ',') { // Césure de phrase $lstComa = $lenRes+1+$lenMot; } else if (($lstChar == '.') AND ($lenMot > 2)) // On evite les abreviations de nom ou prénom { // Fin de phrase $lstPt = $lenRes+1+$lenMot; } else if (($lstChar == ':') OR ($lstChar == ';')) { // Césure $lstDblPt = $lenRes+1+$lenMot; } } } else { break; } $i++; } if ($lstPt > 0) { $res = substr($res,0,$lstPt); } else if ($lstDblPt > 0) { $res = rtrim(substr($res,0,$lstDblPt-1)).$nxtstr; } else if ($lstComa > 0) { $res = rtrim(substr($res,0,$lstComa-1)).$nxtstr; } else { // Suppression des petits mots se trouvant à la fin // Inutile pour respecter la longueur maxi, mais plus convivial $tinyWords = array(); //$tinyWords = array(':',';','a','à','au','aux','avec','ce','dans','sur','un','une'); $tinyWords = array(':',';'); while (in_array(strtolower($mots[$i-1]),$tinyWords)) { $res = substr($res,0,-(strlen($mots[$i-1])+1)); $i--; } $res = $res.$nxtstr; } } return $res; }
17 mai 2008 à 20:57
17 mai 2008 à 17:47
Il semblerait que le systeme de post de phpcs est eu un petit souci de convertion de lettres accentu?s.
pour mon pb de txt court, il n'y a pas de html dans le txt.
j'aivais enlev? le html a cause des photos qu'il pouvais y avoir au debut des articles
17 mai 2008 à 17:09
Perso, jai désactivé les tinywords car çà merde beaucoup, et grosse perte de performance.
Et, tu me fais justement remarqué que la fonction ne gère pas les césures avec un ! ou ? ... Je vais plancher la dessus.
Enfin, n'oublie pas de fournir un texte sans HTML, via strip_tags... Ca peut expliquer ton petit résumé si ya du code CSS ;op
17 mai 2008 à 10:48
je ne comprand pas pourquoi la phrase se termine apres un " ? "alors qu'il a ?t? d?finis dans les mots a ne pas prandre.
$tinyWords = array(':',';','a','?','au', ...
autre chose j'ai un r?sum? de 177 caracteres alor que j'en ai defini 400 dans la fonction et l'article contient plusieurs centaines de lignes.
merci de votre aide et bon week
28 janv. 2008 à 02:30
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.