nargy | ou alors un truc du genre:
Code :
- function couper($chaine, $nbmots)
- {
- $n=0;
- $res="";
- while(1)
- {
- // trouver le début de premier tag:
- $debut_tag=strpos($chaine,'<');
- // sinon prendretoute la chaine
- if($debut_tag==false) $debut_tag=strlen($chaine);
- // copier le morceau de texte
- $tmp=substr($chaine,0,$debut_tag);
- // couper par mots
- $mots=split($tmp, "[ \t\r\n]" );
- // ajouter les mots au résultat
- for($i=0;$i<count($mots) && $n<$nbmots;$i++,$n++)
- $res.=($n?" ":"" ).$mots[$i];
- // vérifier si on a atteind le nombre max de mots
- if ($n>=$nbmots) return $res;
- // couper la chaine
- $chaine=substr($chaine,$debut_tag);
- // vérifier si on a atteind la fin de la chaine
- if (strlen($chaine)==0) return $res;
- // trouver la fin du tag
- $fin_tag=strpos($chaine,'>');
- // sinon erreur de fin de tag, retourner chaîne vide
- if($fin_tag==false) return "";
- // copier tag
- $res.=substr($chaine, 0, $fin_tag+1);
- // ajouter un mot
- $n++;
- // vérifier si on a atteind le nombre max de mots
- if ($n>=$nbmots) return $res;
- // couper la chaine
- $chaine=substr($chaine,$fin_tag+1);
- }
- }
|
Message édité par nargy le 15-04-2006 à 16:47:46
|