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

Langage PHP Discussion :

Tronquer les phrases d'un texte


Sujet :

Langage PHP

  1. #1
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 118
    Par défaut Tronquer les phrases d'un texte
    Bonjour;

    Pour faire un résumé de mon texte j’utilise cette fonction pour tronquer les phrases d'un texte ou chaine de caractère voici la fonction plus mon code pour afficher le résumé :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
    function tranquer_phrase($chainePhrase,$phraseSeparateur)
    {
    	$phraseSeparateur='.';
    	$chainePhrase = explode($phraseSeparateur, $chainePhrase);
     
    /*foreach($chainePhrase as $kye=>$phrase)
    		{
    			
    		print_r (''.$kye.' | '.$phrase.'<br /><br />');
           
    		}*/
    ?>
    </font></strong></p>
    <br>
              <table width="450" border="0" align="center">
                <tr bgcolor="#324800" height="30px">
                  <td align="center"><b><font color='#F8FAF4' face="arial" size="2">Cle</font></b></td>
                  <td align="center"><b><font color="#F8FAF4" face="arial" size="2">Phrase</font></b></td>
                </tr>
    <?php 
     
    foreach($chainePhrase as $kye=>$phrase) 
        { 
     
     
    	echo "<tr>
    				<td bgcolor='#90CE00' ><b><font color='#000938' face='arial' size='2'>$kye</font></b></td>
                    <td bgcolor='#DFFAA0' align='center'><b><font color='#000938' face='arial' size='2'>$phrase</font></b></td>
        	 </tr>";
     
     //   echo $cle.' : '.$valeur.'<br>'; 
        } 
    // **** mon code ajouter au fonction ****
    $calc=array();
    	$calc=count($kye);	
    	for($i=0;$i<$calc; $i=$i+2){
    		$j=1;
    		$resume="1";
    		while($j<=$calc){
    		$resume.=$phrase;
    		$j++;
    		}
    		echo $resume;
    		}
    //******* fin de mon code******	
     
    		return $chainePhrase;
    };
    ?>
    </table><br>
    Mon code pour affichiez le résumé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $calc=array();
    	$calc=count($kye);	
    	for($i=0;$i<$calc; $i=$i+2){
    		$j=1;
    		$resume="1";
    		while($j<=$calc){
    		$resume.=$phrase;
    		$j++;
    		}
    		echo $resume;
    		}
    Ce code affiche tout la chaîne mais ce que je veux afficher phrase et sauter une phrase comme ça je peux réalisé plus ou moins un résumé!
    j'ai pas compris pourquoi ça marche pas!!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    j'ai pas compris pourquoi ça marche pas!!
    Moi je me demande comment tu esperais que ça fonctionne.

    Je relève la première erreur que je vois :

    $kye est l'index de ton tableau $chainePhrase.
    count($kye) vaut donc 1.


    il faut que tu revois proprement ce que tu fais, car ton code n'a pas de logique, par exemple tu nous montres une fonction tranquer_phrase() mais elle n'est pas utilisée.

    Également, utilise des noms de variable explicites ; avec $kye et $calc evidemment tu t'y perds.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 118
    Par défaut
    J'ai fait mes efforts pour utilisé cette fonction.
    C'est pour cela j'ai posé mon problème ici. c'est mon code n'est pas logique c'est pour la simple raison: je suis à la recherche du logique!

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Commence par suivre les conseils de base
    - code avec une indentation claire
    - des noms de variables explicites
    - parties inutiles commentées supprimées

    A partir de là, ça sera plus facile pour toi et pour nous de voir ou va ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 118
    Par défaut
    Merci sabotage, une seule question:
    comment compté le nombre de phrase dans ce tableau?

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 152
    Par défaut
    Si par "phrase" tu entends "entrés dans le tableau" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nNbElem = count($aMonTableau);

  7. #7
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 118
    Par défaut
    Merci pour vos idée.

    je sais pas si seulement moi qui pensé de mettre un résumé de texte comme ça ou non! mais d'après les recherches que j'ai fait pendant deux mois et quelque j'arrive pas à trouver une solution bizzar !

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 152
    Par défaut
    si je comprend bien tout tu veux afficher une ligne du texte sur deux ?
    Si c'est ça je comprends que tu soit le seul à le faire c'est vraiment pas trés orthodoxe comme "résumé".

    Mais du coup si tu as ton texte dans un tableau et que tu veux afficher qu'une ligne sur deux un truc du genre ne serait pas plus simple ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sResume = '';
    $nCount = count($aTonTableau);
    for($i=0;$<$nCount;$i = $i+2)
    {
        $sResume  .= $aTonTableau[$i];
    }

  9. #9
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 422
    Par défaut
    Citation Envoyé par roy2work Voir le message
    Merci pour vos idée.

    je sais pas si seulement moi qui pensé de mettre un résumé de texte comme ça ou non! mais d'après les recherches que j'ai fait pendant deux mois et quelque j'arrive pas à trouver une solution bizzar !
    Techniquement y'a pas de difficulté d'afficher une phrase sur deux, mais pratiquement y'a peu de chance que cela te fasse un résumé cohérent. En général pour donner une idée d'un texte on affiche le début du texte que l'on limite à un certain nombre de caractères.
    Si besoin une fonction qui sait faire ça et coupe sur les espaces afin de ne pas couper de mots, avec un maximum de x caractères :

    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
    function truncate($string, $size, $encodage = 'utf-8') {
     
            $chaine = mb_substr($string, 0, $size, $encodage); // coupe la chaine à la taille max désirée
     
            if ($chaine == mb_substr($string, 0, $size + 1, $encodage)) // pas de modif. Cette étape évite d'utiliser strlen sur la longueur totale de la chaine 
            return $chaine;
     
            // recherche le dernier espace (s'il y en a un)
            if ($lastSpace = strrpos($chaine, ' '))
            return substr($chaine, 0, $lastSpace) . '...'; 
            else
            return $chaine . '...';
    }
     
    $texte = 'Fonction de troncature de texte qui permet de couper sur un espace avec un maximum de x caractères';
    $nb_caracteres = 50;
    $texte = truncate($texte, $nb_caracteres, 'utf-8');

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

Discussions similaires

  1. Supprimer les insultes dans un texte oui mais...
    Par psychoBob dans le forum Langage
    Réponses: 19
    Dernier message: 16/04/2008, 15h03
  2. faire reconnaitre les accents d'un texte html à flash
    Par rantanplan08 dans le forum Flash
    Réponses: 5
    Dernier message: 19/06/2006, 00h13
  3. Extraire les mots d'un texte
    Par krachik dans le forum C
    Réponses: 9
    Dernier message: 11/05/2006, 22h16
  4. indexer les colonnes de type TEXT
    Par Bourak dans le forum Outils
    Réponses: 3
    Dernier message: 09/05/2006, 16h02
  5. Extraction des phrases d'un Texte
    Par LE CHAKAL dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2002, 21h23

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