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 :

Motif incorrect ?


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Motif incorrect ?
    Bonjour,

    j'essaye de récupérer dans un code source une série d'informations en utilisant ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    preg_match_all("`class=\"itemColG10\">(.*)<font style=\"font-weight:normal;\">&nbsp;&nbsp;v&nbsp;([^<>]*)</font></a><img src=\"/img/v4/fr.gif\" style=\"background-color:#[FFF7D9|FFFFFF]\">
    			</div>
    			<div class=\"itemColG21\" style=\"font-size:11px\";>([^<>]*)</div>
    			<div class=\"itemColG2\">
    			Licence:&nbsp;<font class=\"edito\">([^<>]*)</font>&nbsp;&nbsp;&nbsp;Date de la dernière version:&nbsp;<font class=\"edito\">([^<>]*)</font><br>
    			Taille:&nbsp;<font class=\"edito\">([^<>]*)&nbsp;Mo</font>&nbsp;&nbsp;&nbsp;
     
    			OS:&nbsp;<font class=\"edito\">([^<>]*)</font>`m", $_POST['code'.$i], $matches);
    			print_r($matches);
    Seulement le print_r m'affiche ceci :

    Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) [4] => Array ( ) [5] => Array ( ) [6] => Array ( ) [7] => Array ( ) )

    Je ne suis pas très doué en RegEx donc le problème vient sans doute de là, ou alors j'utilise peut-être la mauvaise fonction ?

    Merci de m'éclairer sur la nature du problème.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    A la diférence de preg_match, preg_match_all ne s'arrete pas à la 1er occurence et est donc susceptible de renvoyer plusieurs résultat, qu'il va bien entendu mettre dans un tableau...

    Il est donc normal que ton print_r() t'affiche un tableau de tableau, chaque résultat étant lui même un tableau.

    De mémoire, un 4e paramètre peut être ajouté à preg_match_all pour déterminer la façon dont sera trier ton tableau de résultat (un flag, que tu trouvera dans l'aide PHP)

    Pour résumer, $matches[0] est le 1er resultat, $matches[1] le 2e resultat ect...
    ensuite, $matches[0][0] est l'expression complete trouver dans le 1er resultat, $matches[0][1] est la 1er sous chaine du 1er resultat retourner par ton preg etc...
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    Conclusion : il te faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    print_r($matches[0]);
    print_r($matches[1]);
    print_r($matches[2]);
    print_r($matches[3]);
    Autant de fois que t'as de résultats, ou alors plus simplement avec un while, je sais plus trop comment, ca fait longtemps que j'ai pas utilisé de tableaux...

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    foreach($matches as $val) print_r($val)

    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

Discussions similaires

  1. [PROCEDURE STOCKEE]Utilisation incorrecte de INSERT
    Par BaronSamdi dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/03/2004, 17h26
  2. [langage] [Expression][Régulière] motif
    Par Cyspak dans le forum Langage
    Réponses: 4
    Dernier message: 23/09/2003, 15h24
  3. [langage] expression reguliere motif répétitif dans 1 pattern
    Par comme de bien entendu dans le forum Langage
    Réponses: 11
    Dernier message: 09/04/2003, 17h14
  4. [VB6] [Graphisme] Floodfill et motif
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 03/12/2002, 10h35
  5. [VB6] [MSChart] Courbe incorrecte
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 08/10/2002, 22h53

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