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 :

Recherche valeur en une passe


Sujet :

Langage PHP

  1. #1
    Membre habitué

    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 157
    Points
    157
    Par défaut Recherche valeur en une passe
    Je voudrais dans le code HTML suivant récupérer les valeurs en bleu.
    Cette séquence de code HTML se répète plusieurs fois

    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
              <li class="percent">
                <span class="number">85</span>
                <span class="bar">
                  <span style="width: 85" class="stat"></span>
                </span>
                <span class="country">France</span>
              </li>
              
              <li class="percent">
                <span class="bar">
                  <span style="width: 100" class="stat"></span>
                </span>
                <span class="lib">
                  <span class="value">pneu</span>
                </span>
              </li>
    J'ai réussi en effectuant 2 appel a preg_match_all() mais je pense qu'il doit être possible de faire avec un seul appel a preg_match_all().

    Hélas je n'y arrive pas.

    Merci de votre aide

  2. #2
    Membre habitué

    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 157
    Points
    157
    Par défaut
    Voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    preg_match_all('#<span class="value">(.*)</span>#', $result, $value1);    
    preg_match_all('#<span style="width: (.*)" class="stat">#', $result, $value2)
    ;

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Comme ça non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    preg_match_all( '#<span style="width: (?<width>.*)" class="stat">.*<span class="value">(?<value>.*)</span>#Ums', $result, $matches );
    print_r( $matches['width'] );
    print_r( $matches['value'] );


    Au passage, une remarque CSS, une valeur prend toujours des unités (sauf quand elle vaut zéro). Donc il faut écrire

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    @carla-la-belle : Ici la variable $result n'est pas le résultat de l'expression, mais la chaine qui est testée par l'expression. $matches est le tableau dans lequel sont mis les résultats.

    J'ai juste repris le nommage des variables de lemoussel, mais il ne faut pas se fier juste au nom de la variable pour en définir son utilisation.

  5. #5
    Membre habitué

    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 157
    Points
    157
    Par défaut
    Merci Bisûnûrs ca marche nickel
    Difficile a appréhender ces expressions régulières.
    Aurais tu un livre a conseiller sur le sujet ?

    Mais si je complique un peu. Je veux sélectionner que ce qui est en bleu.
    Avec ton exp. régulières cela en prend trop. En effet cela sélectionne en plus les rouges ce dont je ne veux pas. J'ai beau essayer pas moyen.

    Ce qui me donne :

    value width
    essai1 100
    essai2 11.598630098705
    essai3 10.751051150984

    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
    <li class="geo_percentages">
    <span class="geo_number descbold">85.5%</span>
    <span class="geo_bar">
    
    <span style="width: 85.5px" class="geo_stat"></span>
    </span>
    <span class="geo_country">
    France
    </span>
    </li>
    <li class="geo_percentages">
    <span class="geo_number descbold">1.7%</span>
    
    <span class="geo_bar">
    <span style="width: 1.7px" class="geo_stat"></span>
    </span>
    <span class="geo_country">
    Malta
    </span>
    </li>
    
    <li class="geo_percentages">
    <span class="geo_bar">
    <span style="width: 100px" class="geo_stat"></span>
    
    </span>
    <span class="geo_country">
    <span class="value">Essai1</span>
    </span>
    </li>
    <li class="geo_percentages">
    <span class="geo_bar">
    <span style="width: 11.598630098705px" class="geo_stat"></span>
    
    </span>
    <span class="geo_country">
    <span class="value">essai2</span>
    </span>
    </li>
    <li class="geo_percentages">
    <span class="geo_bar">
    <span style="width: 10.751051150984px" class="geo_stat"></span>
    
    </span>
    <span class="geo_country">
    <span class="value">essai3</span>
    </span>
    </li>

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par lemoussel Voir le message
    Merci Bisûnûrs ca marche nickel
    Difficile a appréhender ces expressions régulières.
    Aurais tu un livre a conseiller sur le sujet ?
    Bah oui, la bible du sujet : http://general.developpez.com/livres...L9780596528126

Discussions similaires

  1. [XL-2007] Fonction qui recherche valeur d'une colonne
    Par nicolaz18 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/04/2012, 17h51
  2. [XL-2003] Recherche valeur dans une table ou matrice.
    Par sevy1 dans le forum Excel
    Réponses: 9
    Dernier message: 03/01/2012, 16h39
  3. Réponses: 3
    Dernier message: 27/08/2010, 13h01
  4. Recherche valeurs d'une colonne
    Par Joachim49 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/12/2007, 13h59
  5. [vba excel] Recherche valeur d'une textbox dans une feuille
    Par vanessaferraz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/08/2006, 10h55

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