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 :

Générateur de keyword à partir d'un texte


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 25
    Par défaut Générateur de keyword à partir d'un texte
    Bonjour,

    Comme le titre l'indique je cherche à enlever la dernière virgule d'un implode.

    voici mon code :

    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
     
     
    $chaine = strtr( $texte, '.,-;:!?/&"', ' ' );
    $tabTemp = explode( ' ', $chaine );
    strip_tags( $tabTemp );
    foreach( $tabTemp as $k => $v )
    {
      if( $v != NULL )
      {
        if( preg_match( '#(.*){1}(\')#', $v, $matches ) )
        {
          $v = substr( $v, 2 );
        }
        $tabChaine[] = $v;
      }
    }
    $word_counts = array();
    foreach( $tabChaine as $m )
    {
      if( !array_key_exists( $m, $word_counts ) ) $word_counts[$m] = 1;
      else $word_counts[$m]++;
    }
    arsort( $word_counts );
     
    $compteur = 0;
    $nbArt2Parse = 10;
    $result = array();
    foreach( $word_counts as $valeur => $k ) 
    {
      if( $valeur != NULL )
      {
        if( $compteur == $nbArt2Parse ) break;
        $valeur = $valeur . '|';
        $texts = explode( '|', $valeur );
        $comma_separated = implode( ',', $texts );
        echo $comma_separated;
        $compteur++;
      }
    }

    ce qui donne :

    et,si,ad,in,cum,vel,quod,atque,non,


    et donc il faudrait que je retire la dernière virgule après le dernier mot.

    Une idée ?

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $texts = explode( '|', $valeur );
    unset($texts[count($texts)-1]);
    $comma_separated = implode( ',', $texts );

  3. #3
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 25
    Par défaut
    ceci ne fonctionne pas car il enleve toutes les virgules ^^

  4. #4
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Tu as une façon bizarre de faire, essaye comme ça :

    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
    $texte_sortie = '';
    foreach( $word_counts as $valeur => $k ) 
    {
      if( $valeur != NULL )
      {
        if( $compteur == $nbArt2Parse ) break;
        $texte_sortie .= $valeur . '|';
        $compteur++;
      }
    }
     
    $texts = explode( '|', $texte_sortie );
    unset($texts[count($texts)-1]);
    $comma_separated = implode( ',', $texts );
    echo $comma_separated;

  5. #5
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 25
    Par défaut
    peut être ^^ mais meme en fesant de ta façon sa ne fonctionne pas ^^


    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
     
     
     
    $chaine = strtr( $texte, '.,-;:!?/&"', ' ' );
    $tabTemp = explode( ' ', $chaine );
    strip_tags( $tabTemp );
    $matches = '';
    foreach( $tabTemp as $k => $v )
    {
      if( $v != NULL )
      {
        if( preg_match( '#(.*){1}(\')#', $v, $matches ) )
        {
           $v = substr( $v, 2 );
        }
        $tabChaine[] = $v;
      }
    }
    $word_counts = array();
    foreach( $tabChaine as $m )
    {
      if( !array_key_exists( $m, $word_counts ) ) $word_counts[$m] = 1;
      else $word_counts[$m]++;
    }
    arsort( $word_counts );
     
    $compteur = 0;
    $nbArt2Parse = 10;
    $texte_sortie = false;
    foreach( $word_counts as $valeur => $k ) 
    {
      if( $valeur != NULL )
      {
        if( $compteur == $nbArt2Parse ) break;
        $texte_sortie .= $valeur . '|';
        $compteur++;
      }
    }
     
    $texts = explode( '|', $texte_sortie );
    unset( $texts[count( $texts )-1] );
    $comma_separated = implode( ',', $texts );
     
    echo $comma_separated;
    j'obtien la même chose donc :

    et,si,ad,in,cum,vel,quod,atque,non,

  6. #6
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    tu pourrais afficher le contenu du $texte_sortie après le foreach ?

    de plus $texte_sortie ne dois pas être définie à false mais à ''

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

Discussions similaires

  1. VBA : Creation de table à partir de fichier texte
    Par titof90 dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/03/2007, 10h34
  2. Creer une chaine a partir d'un texte formaté
    Par PorkyFighter dans le forum Réseau
    Réponses: 15
    Dernier message: 29/10/2006, 21h26
  3. [MySQL] Générateur d'interface à partir de table sql ?
    Par Pumpkins dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 14/11/2005, 12h13
  4. Réponses: 2
    Dernier message: 08/08/2005, 11h27
  5. Réponses: 6
    Dernier message: 02/06/2005, 12h44

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