Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2007, 19h18   #1
Invité de passage
 
Inscription : mai 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 2
Points : 1
Points : 1
Par défaut exctraction dans un fichier html

Bonjours à tous !!
je récupère un fichier, html dont chaque ligne est stockée dans un tableau
dont voici l'extrait qui me pose problème :

<tr><td width=40% class=fieldname>Founder</td><td class=fieldvalue><a href=show_user.php?userid=111334>L ien vers un user</a> <a href=view_profile.php?userid=111334><img border=0 src=img/head_20.png></a></td></tr>

je doit extraire ce qui est en gras. j'ai donc fais ceci :
Code :
.*<a href="show_user\.php\?userid=(.*)">.*</a>.*
puis ça :
Code :
^.*<a href="show_user\.php\?userid=(.*)">.*</a>.*$
mais aucune des deux ne marche je suis carrément bloquer, je vois pas d'où ça peut venir

merci d'avance pour votre aide

j'ai oublier : j'utilise la fonction eregi
nicodu95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2007, 19h49   #2
Futur Membre du Club
 
Inscription : avril 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 17
Points : 19
Points : 19
Par défaut Réponse

Bonsoir,

Plus simple normalement ca doit marcher :

Code :
1
2
3
4
5
6
7
8
<?php
 
if(eregi('<a href="show_user\.php\?userid=(.*)">',$FichierHTML,$Occurence)) {
foreach($Occurence[1] as $Reponse) {
echo $Reponse;
}
}
?>
Là j'ai fait un Echo mais bon ... comme tu le sens après, ca devrait afficher tout les ID dans le HTML exctracter.
Cordialement,
DR_KILLER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2007, 19h49   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Il est recommandé d'utiliser les fonctions PCRE (preg_*), qui vous permettent notamment d'utiliser l'option U de non gourmandise (ce n'est pas la seule méthode) :
Code :
1
2
3
if (preg_match('#<a href="show_user\.php\?userid=(.+)">#U', $string, $m)) {
    echo $m[1];
}
Ou encore modifier votre motif :
Code :
1
2
3
if (preg_match('#<a href="show_user\.php\?userid=([^"]+)">#', $string, $m)) {
# Ou encore
if (preg_match('#<a href="show_user\.php\?userid=([0-9]+)">#', $string, $m)) {
Et si vous souhaitez capturer toutes les occurrences et non une seule, il faut en revanche utiliser la fonction preg_match_all :
Code :
1
2
3
4
5
if (preg_match_all('#<a href="show_user\.php\?userid=(.+)">#U', $string, $m, PREG_SET_ORDER)) {
    foreach ($m as $v) {
         echo $v[1] . '<br/>';
    }
}
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2007, 11h30   #4
Invité de passage
 
Inscription : mai 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 2
Points : 1
Points : 1
merci pour votre aide, j'ai réussi avec ça :
Code :
$regex = '#show_user\.php\?userid=([0-9]*)#';
encore merci !!!!
nicodu95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h40.


 
 
 
 
Partenaires

Hébergement Web