IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

decouper chaine de caractere au mot


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut decouper chaine de caractere au mot
    bonjour à tous,

    Voila, j'ai rechercher partout mais je n'arrive pas à résoudre mon problème, j'épere que l'un d'entre vous pourra m'éclaircir et surtout soulager mes neuronne :p

    Je suis à la recherche d'une fonction php qui permettrait de couper une chaine de caractere au mot, par exemple en comptant le dernier espace ou une virgule, une ponctuation.

    en clair, ca pourrait donner:
    "Bienvenue sur developpez.com, le site de réference pour apprendre et découvrir de nouveaux language et obtenir de l'aide par nos utilisateurs, un site auto-formateur."
    on souhaiterais afficher ca dans une news et afficher que les 100 premiers caractere:
    qui donnerais à titreje ne les ai pas compté):
    "Bienvenue sur developpez.com, le site de réference"
    ==>coupé au mot sinon serait pu être:
    Bienvenue sur developpez.com, le site de réference p...(pas jolie non)

    mais comment faire? par quel type de fonction?

    merci de m'avoir lu et un grand merci pour ceux qui voudront bien m'aidé

    sam!

  2. #2
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Essaye un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      $decoupechaine = explode(' ', $chaine);
      $chainecoupe = '';
      for($i = 0; $i <= strlen($decoupechaine); $i++){
        if(strlen($chainecoupe) < 100){
          $chainecoupe .= $decoupechaine[$i] . ' ';
        }
      }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    merci de ta réponse,

    voici le script qui marche au caractere car je n'arrive pas au mot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    //requete
    $req="SELECT * FROM " . xx . " where xx. "' order by date DESC";
    $req=stripSlashes($req);
    $result = mysql_query($req) ;
     
    //tableau
    $liste_xx=array();
    $liste_xx=array();
    $liste_xx=array();
    $max_ligne=mysql_num_rows($result);
     
    	for ($i = 0; $i < mysql_num_rows($result); $i++) {
    		$tbl_ligne = mysql_fetch_row($result);
    		$liste_xx[$i] = $tbl_ligne[0]; 
    		$liste_xx[$i] = $tbl_ligne[1];
    		$liste_xx[$i] = substr($tbl_ligne[2], 0, 150);
     
    		$pattern = "<[^>]+>";
     
    $liste_contenu[$i] = ereg_replace($pattern,"",$liste_contenu[$i]);		
    		$liste_contenu[$i] = substr($liste_contenu[$i], 0, 45);
     
    //la fonction proposé	
    $decoupechaine = explode(' ', $liste_contenu[$i]);
      $chainecoupe = '';
      for($i = 0; $i <= strlen($decoupechaine); $i++){
        if(strlen($chainecoupe) < 100){
          $chainecoupe .= $decoupechaine[$i] . ' ';
        }
      }
     
    	}
     
    	for ($i=0;$i<3;$i++) {	
    					// puis le titre de la news
    					echo("<div class='xx'><h2><a href='index.php?id=" . $liste_xx[$i] . "&lang=" . $lang . "&rub=xx>" . $liste_xx[$i] . "</a></h2>");					
    					// et le lien pour le plus d'infos
    					echo($liste_contenu[$i] . "...</div>");
    		}
    mais je ne vois plus comment faire

  4. #4
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Bonjour,


    voici comment je ferais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?php
     
    /*
     * fonction recursive
     */
    function chercheDernierBlanc($text, $offset, $borne) {
     
        // on recherche le dernier blanc
        $dernier_blanc= strpos($text," ", $offset);
        if($dernier_blanc === false) return "erreur";
     
        // tant qu'il est dans la limite autorisee
        if($dernier_blanc <= $borne) {
     
             // on relance la recherche
             return chercheDernierBlanc($text, $dernier_blanc+1, $borne);
     
        // sinon on renvoie le résultat
        }else return substr($text,0,$dernier_blanc);
    }
     
     
    $texte = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
    $borne_limite=200;
    $suffix="...";
     
    $truncate=chercheDernierBlanc($texte, 0, $borne_limite);
    echo "<div style=\"width:300px;text-align:justify;\">${truncate}${suffix}</div>";
     
    ?>


  5. #5
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    salut samspitz, amoiraud, ska_root,

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    $borne_limite=25;
     
    function truncTexte($text, $borne)
    {
    	if (strlen($text) >= $borne)
    		{
    		$text=substr($text." ", 0, $borne + 1);
    		$text=substr($text,0 , strrpos($text, " ", 0))."...";
    		}
    return $text;
    }
     
    $texte = "ceci est un texte trop long";
     
    echo truncTexte($texte, $borne_limite);
    ?>

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    merci de vos réponses à tous.
    le problème à etait résolu, merci à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chaine de caractere en mot
    Par bob456 dans le forum C#
    Réponses: 7
    Dernier message: 20/07/2010, 20h05
  2. Réponses: 1
    Dernier message: 18/07/2006, 20h09
  3. decouper une chaine de caracteres en mots
    Par cyclone3 dans le forum C++
    Réponses: 4
    Dernier message: 08/06/2006, 17h52
  4. Recherche un mot dans une chaine de caractere
    Par jean tof dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2006, 11h34
  5. decouper une chaine de caractere
    Par tibobao dans le forum ASP
    Réponses: 4
    Dernier message: 06/12/2004, 12h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo