Membres


Pas encore membre ?
inscrivez-vous ici

Connexion :
Login
Code
Mot de passe perdu ?
Liste des membres

WordWrap ameliore sans html - Fonction PHP

WordWrap ameliore sans html

WordWrap ameliore sans html


Si vous est ici, c\'est que la fonction wordwrap fourni par php ne vous suffit pas.

Voici une fonction qui va coupé les mots, sans coupé le html contenu dans le texte. De cette façon, plus de probleme avec les liens ou les images.

function noHtml_wordwrap($str,$cols,$cut) {
   $tag_open = \'<\';
   $tag_close = \'>\';
   $count = 0;
   $in_tag = 0;
   $str_len = strlen($str);
   $segment_width = 0;

   for ($i=0 ; $i<=$str_len ; $i++){
       if ($str[$i] == $tag_open) {
           $in_tag++;
           } elseif ($str[$i] == $tag_close) {
               if ($in_tag > 0) {
                   $in_tag--;
               }
           } else {
               if ($in_tag == 0) {
                   $segment_width++;
                   if (($segment_width > $cols) && ($str[$i] != \" \")) {
                       $str = substr($str,0,$i).$cut.substr($str,$i+1,$str_len-1);
                       $i += strlen($cut);
                       $str_len = strlen($str);
                       $segment_width = 0;
                   }
               }
           }
   }
   return $str;



Il est inspiré de divers contribution de cette page : http://fr.php.net/wordwrap

Ecrit le 9-/-0/2005 par Sky
http://www.graphiks.net


Ajouter un commentaire
  • Le 03-05-2008, Nico a écrit :
    C&#039;est exactement le code qu&#039;il me faut, je dois faire du wordwrap sur du texte contenant du code html (des balises &lt;span&gt; pour de la mise en forme), mais malheureusement, j&#039;ai des erreurs lors de l&#039;execution de cette fonction. Je crois qu&#039;il manque &quot;}&quot; de fin de fonction mais c&#039;est surtout avec les &quot;&quot; dans les variables $tag_open et $tag_close, et un peu plus loin dans le code aussi &quot;($str[$i] != &quot; &quot;)&quot;.
    Merci d&#039;avance
  •  

Pseudo :
Texte :

Nous  -  Plan du site  -  Informations légale  -  Contact  -  © Graphiks.net