Césure des mots dans du PHP

Bonjour,

Voilà, je voudrai intégrer une césure de mot dans ce code (Description). Si vous avez une idée :o) :
-------------------------------
<?php

$resultat['description'] = htmlspecialchars($resultat['description']);
if ( $type=='search' ) {
for ( $i=0; $i<$nb_mots; $i++ ) {
$resultat['description'] = keyword_in_bold($mots_reels_recherches[$i],$resultat['description']);
};
};
echo $resultat['description'];

?>
--------------------------------

Merci :o)

6 réponses

  1. Merci Alain,

    Je retiens ton idée et dès que j'aurai une minute j'essaierai. Là je suis en train de finaliser mon nouveau projet et j'ai une tonne de chose à faire. Encore quelques problèmes techniques à réglé et tout sera ok. Tes conseils m'ont été précieux. Merci une nouvelle fois :o)

    Passe une belle journée.

    mdpubs
    1. comme ça ça marche mieux mais le résulta n'est pas probant

      $texte = 'Unmotbientroplongécritparunenfoirédansunforum suivi d\'un autre avec balise html
      <strong class="pouet" style="background-image;width:130px;"><u><b><i>énorme,
      unmotvraimenténormedanscetexte</i></b></u></strong> et un mottrèslongbeaucouptroplong';
      
      $min='25';
      function coupe_mot($match,$longueur=15,$inserer='<br />')
      {
      return wordwrap($match[1],$longueur,$inserer,1);
      }
      $texte1=preg_replace_callback('/\b([[:alnum:]]{'.$min.',})\b/','coupe_mot', $texte);
      
      echo $texte1;
      1. Bonjour Alain,

        J'ai fais ça, mais ça marche pas :

        ------------------------
        <?php

        $resultat['description'] = htmlspecialchars($resultat['description']);
        if ( $type=='search' ) {
        for ( $i=0; $i<$nb_mots; $i++ ) {
        $resultat['description'] = keyword_in_bold($mots_reels_recherches[$i],$resultat['description']);

        echo $resultat['description'];
        $description = $resultat['description'] ;
        $min='25';
        function coupe_mot($match,$longueur=15,$inserer='*')
        {
        return wordwrap($match[1],$longueur,$inserer,1);
        }
        $description1 = preg_replace_callback(''\b([[:alnum:]]{'.$min.',})\b'','coupe_mot', $description);

        echo htmlentities($description1);
        };
        };

        ?>
        --------------------------------------

        Il me met cette erreur :

        --------------------------------------
        Warning: Unexpected character in input: '\' (ASCII=92) state=1 in pub-site.php on line 124

        Parse error: syntax error, unexpected T_STRING in pub-site.php on line 124
        --------------------------------------

        La ligne 124, c'est celle là :

        -----------------------------------
        $description1 = preg_replace_callback(''\b([[:alnum:]]{'.$min.',})\b'','coupe_mot', $description);
        ------------------------------------

        Si tu as une idée :o)...
        1. Salut Alain,

          Ouai, j'ai trouvé ça aussi, mais vu que mes variables fonctionnent du genre :

          $resultat['description'] et non $description

          du coup j'ai pas réussi à l'intégrer dans mon code ci-dessus. J'ai essayé pleins de façon, mais rien ne marche. Faut dire que je débutant en PHP, alors j'ai vite mes limites !

          Si tu sais comment l'intégrer dans mon code ci-dessus ?

          A+ :o)
          1. Je t'ai trouvé ça sur le web, je ne sais pas si cela t'irra ?

            site:http://www.expreg.com/lire-Chaines-source

            Césure sur des mots V3 Posté par Yves Maistriaux

            Et voiçi encore une autre version de césure sur des mots sans couper les attributs des balises HTML
            <?php
            $texte = 'Unmotbientroplongécritparunenfoirédansunforum suivi d\'un autre avec balise html
            <strong class="pouet" style="background-image;width:130px;"><u><b><i>énorme,
            unmotvraimenténormedanscetexte</i></b></u></strong> et un mottrèslongbeaucouptroplong';

            $min='25';
            function coupe_mot($match,$longueur=15,$inserer='*')
            {
            return wordwrap($match[1],$longueur,$inserer,1);
            }
            $texte1=preg_replace_callback(''\b([[:alnum:]]{'.$min.',})\b'','coupe_mot', $texte);

            echo htmlentities($texte1);
            ?>