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 :

Opération sur un Texte


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de Dirty Harry
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 111
    Points : 53
    Points
    53
    Par défaut Opération sur un Texte
    Hé Hé Bonjour,

    J'ai un texte ou je dois exécuter une action à chaque fois que je rencontre un certain mot.
    Exemple: à chaque fois que je croise le mot ordinateur dans un texte, j'incrémente un compteur.

    Je réussi, mais seulement pour le premier mot rencontré et mon script s'arrête à cet instant.

    Quelqu'un peut il me donner une piste ?

    Merci
    There are no secrets to success. It is the result of preparation, hard work, and learning from failure.

  2. #2
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

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

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Oui bien sur....
    A condition que tu donnes le bout de code qui va avec parce que là c'est très obscur comme concept...

    Mais bon... A mon avis tu dois avoir un modele de recherche pour expression régulière. Jette un oeuil ici ( en regardant bien le menu de gauche et en lisant le tout) :

    http://fr3.php.net/manual/fr/referen....modifiers.php

    Ou alors poste nous le bout de code

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  3. #3
    naz
    naz est déconnecté
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Points : 24
    Points
    24
    Par défaut
    substr_count -- Compte le nombre d'occurrences de segments dans une chaîne

    http://fr3.php.net/manual/fr/function.substr-count.php

  4. #4
    Membre du Club Avatar de Dirty Harry
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    En faite, ce que je veux faire isoler une partie d'un texte à la rencontre d'un mot.

    Exemple:

    lorsque je rencontre le mot ordinateur, je veux isoler (mettre dans une variable ou autre) tout le texte qui suit jusqu'à l'autre occurence du mot ordinateur ou je ferais la même chose jusqu'à la fin de mon texte.

    je suis un peu dérouté

    Merci
    There are no secrets to success. It is the result of preparation, hard work, and learning from failure.

  5. #5
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

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

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    La solution est dans le lien que je t'ai donné plus haut. La fonction a utiliser est preg_match_all

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    preg_match_all('/ordinateur(.*)ordinateur/i', $montexte, $data, PREG_SET_ORDER);
     
    echo $data[0];
    En gros $montexte c'est tout ton texte, il va te remonter tout ce qu'il trouve entre les mots ordinateur et te le stocker dans le tableau $data.

    Pour plus d'infos, regarde le lien que je t'ai mis plus haut

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  6. #6
    Membre du Club Avatar de Dirty Harry
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    Je ne suis pas sûr de comprendre coudal56. apres avoir fait un test, je constate que cette facon me renvoie sous forme de tableaux toutes les occurence de l'expression recherché et non pas ce qui se trouve entre ces occurences.

    Est-ce que je me trompe ?
    There are no secrets to success. It is the result of preparation, hard work, and learning from failure.

  7. #7
    Membre du Club Avatar de Dirty Harry
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    toujours rien. Je n'ai pas d'erreur. Il m'affiche Array... on dirait qu'il n'y a rien dans mon tableau.
    There are no secrets to success. It is the result of preparation, hard work, and learning from failure.

  8. #8
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Edit:Voila la solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    preg_match_all("|ordinateur(.*)ordinateur|",
                     $montexte,
                     $out,
                     PREG_PATTERN_ORDER);
     
    //Les résultats sont stockés dans le tableau $out[1]
    print_r ($out[1]);
     
    ?>

  9. #9
    Membre du Club Avatar de Dirty Harry
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    Merci j'ai trouvé.

    preg_match_all($expression, $rapport, $data, PREG_SET_ORDER); print_r($data[0][1]);

    merci à tout le monde.

    J'ai cependant un autre petit problème. Lorsque j'ai plusieur fois l'occurence du mot recherché, il n'a pas l'air a voir ceux entre ceux des 2 extrimité.

    Exemple:

    MonMot blablabla MonMot blablabla MonMot......

    il ne va prendre que le premier et le dernier.
    There are no secrets to success. It is the result of preparation, hard work, and learning from failure.

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Rajouter l'option non gourmand (flag U) car par défaut les expressions régulières chercheront à correspondre à la chaîne la plus longue.


    Julp.

  11. #11
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Juste une question mais si il y a ordinateur au debut mais plus rien jusqu'a la fin du texte ?
    Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
    Nicolas Jaar, Paul Kalkbrenner, Marek Hermann

  12. #12
    Membre du Club Avatar de Dirty Harry
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    bonne question...dailleurs c'est le problème que j'ai. Ta une solution ? je croyais que c'était parce qu'il yavait un occurence entre 2.
    There are no secrets to success. It is the result of preparation, hard work, and learning from failure.

  13. #13
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Je posais ca au pro des regex lol j'ai pas un niveau tres prononcé dans ce domaine
    Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
    Nicolas Jaar, Paul Kalkbrenner, Marek Hermann

  14. #14
    Membre du Club Avatar de Dirty Harry
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    Alors à vous de jouer les pros....svp
    There are no secrets to success. It is the result of preparation, hard work, and learning from failure.

  15. #15
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Pourquoi ne pas utiliser un explode tout simplement, enfin c'est qu'une suggestion

    Sinon, avec un preg_split peut-être.

  16. #16
    Membre du Club Avatar de Dirty Harry
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    Pour ceux qui viennent de se joindre, je ré-explique mon problème:



    Exemple:

    To
    blablabla
    blablabla
    To
    blablablabla
    blalbalba
    To

    les 2 paragraphes de blablabla doivent être séparé, dans un tableau probable, parce que je veux décortiquer ces 2 paragraphe

    voici ce que j'ai pour le moment:

    $expression = '#'.$debut.'(.*)'.$fin.'#Us';
    preg_match_all($expression, $rapport, $data, PREG_SET_ORDER);

    print_r($data[0][1]);

    Ceci fonctionne, mais lorsque je veux aller chercher la derniere partie, elle ne fait pas parti du tableau.

    Help!
    Merci
    There are no secrets to success. It is the result of preparation, hard work, and learning from failure.

  17. #17
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    dans ce cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $tableau = explode ("To", $montexte);
    ?>

Discussions similaires

  1. Opérations arithmétiques sur du texte
    Par tnarol dans le forum Langage
    Réponses: 33
    Dernier message: 01/11/2009, 20h56
  2. tri sur champ texte
    Par ridan dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/08/2004, 16h28
  3. opération sur fermeture de fenêtre
    Par java_math dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/06/2004, 22h52
  4. opérations sur les bits d'un byte
    Par petitours dans le forum C++Builder
    Réponses: 4
    Dernier message: 10/02/2004, 20h42
  5. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 11h45

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