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 :

compter le nombre de mots dans une chaine en php


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de hadjiphp
    Inscrit en
    Décembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 155
    Points : 43
    Points
    43
    Par défaut compter le nombre de mots dans une chaine en php
    Bonjour,
    j'ai une question :
    j'ai la fonction en php qui permet de compter le nombre de mots dans une chaine de caractére.

    la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $chaine = 'phrase_a_compter'; // définition de la variable ou compter le nombre de mots
    str_word_count($chaine); //compte le nombre de mots dans la chaine
    echo str_word_count($chaine); // affiche le résultat
    ?>


    j'applique cette fonction mais ça march pas toutalement
    par exemple :
    la chaine :"université alger algérie sciences technologie formation lmd recherche développement usthb monde économique" comporte 12 mots.

    mais le resultats de cette fonction est 14mots??????????????
    a ce que vous poucez me répondre.
    merci d'avance.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 120
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 120
    Points : 8 272
    Points
    8 272
    Billets dans le blog
    17
    Par défaut
    Salut !
    Peux-tu tester le script suivant et donner le résultat affiché ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
        $s = "université alger algérie sciences technologie formation lmd recherche développement usthb monde économique" ;
        echo 'Nombre de mots : ', str_word_count($s) ;
    ?>
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre du Club Avatar de hadjiphp
    Inscrit en
    Décembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 155
    Points : 43
    Points
    43
    Par défaut
    Bonjour,
    merci
    mais le probleme est non résoulu car elle affiche toujour 14mots, or que la chaine contient 12mots.

    merci d'avance.

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 120
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 120
    Points : 8 272
    Points
    8 272
    Billets dans le blog
    17
    Par défaut
    Et ce qui suit donne quoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
        header('Content-Type: text/plain') ;
        $s = "université alger algérie sciences technologie formation lmd recherche développement usthb monde économique" ;
        print_r(str_word_count($s, 1)) ;
    ?>
    Merci de copier/coller le résultat ici.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Membre du Club Avatar de hadjiphp
    Inscrit en
    Décembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 155
    Points : 43
    Points
    43
    Par défaut
    Bonjour,
    elle affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Warning: Cannot modify header information - headers already sent by (output started at e:\easyphp1-8\www\application\compter_mots.php:10) in e:\easyphp1-8\www\application\compter_mots.php on line 33
    Array ( [0] => universit [1] => alger [2] => alg [3] => rie [4] => sciences [5] => technologie [6] => formation [7] => lmd [8] => recherche [9] => d [10] => veloppement [11] => usthb [12] => monde [13] => conomique )

    mais moi je cherche de compter le nombre de mot dans une chaine de caractére.
    merci d'avance

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 120
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 120
    Points : 8 272
    Points
    8 272
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par hadjiphp Voir le message
    Warning: Cannot modify header information - headers already sent by (output started at e:\easyphp1-8\www\application\compter_mots.php:10) in e:\easyphp1-8\www\application\compter_mots.php on line 33
    Merci de copier/coller le script tel quel dans un nouveau fichier !!

    Array ( [0] => universit [1] => alger [2] => alg [3] => rie [4] => sciences [5] => technologie [6] => formation [7] => lmd [8] => recherche [9] => d [10] => veloppement [11] => usthb [12] => monde [13] => conomique )
    On dirait qu'il y a un souci avec les caractères accentués.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Points : 114
    Points
    114
    Par défaut
    Salut,

    str_word_count fonctionne pas avec des caracteres multibytes (UTF8), donc si ta page est entierement en iso885915, en general ca marche en corrigeant les locales :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setlocale(LC_ALL, 'fr_FR.iso885915');
    Si tu n'as pas besoin d'utiliser une fonction qui aie une intelligence linguistique moi j'obtient le nombre exact de mots en explosant la chaine avec comme critere les espaces, et en comptant le nombre d'elements du tableau resultant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $s = "université alger algérie sciences technologie formation lmd recherche développement usthb monde économique" ;
    $tab = explode(' ',$s);
    echo '<br/>Nombre de mots avec explode : '.count($tab) ; // affiche 12
    UTF8 est une avancee, mais je ne connais pas de fonction equivalente gerant les chaines UTF8. Sur cette page tu peux voir une liste de fonctions
    gerant les caracteres exotiques (francais, chinois ... ;-)), c.a.d. multi-bytes : http://fi2.php.net/manual/en/ref.mbstring.php.


    Bon ammusement

Discussions similaires

  1. Compter les nombres de mots dans une chaine
    Par CLeBeR dans le forum C++
    Réponses: 6
    Dernier message: 28/11/2014, 20h39
  2. Réponses: 4
    Dernier message: 04/03/2009, 10h18
  3. compter le nombre de mot dans une ligne fichier sous shell
    Par ninsekh dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 18/12/2008, 17h54
  4. Compter le nombre d'occurence dans une chaine
    Par shirya dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2007, 20h39
  5. Compter le nombre de caractere dans une chaine
    Par jmjmjm dans le forum C++
    Réponses: 13
    Dernier message: 19/11/2006, 11h37

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