Expression régulière pour extraire une chaine entre 2 tags
4 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
- parrot
- WRInaute discret

- Messages: 54
- Inscription: 8 Juin 2005
Expression régulière pour extraire une chaine entre 2 tags
Bonjour,
j arrive pas à faire un truc tout con
Je veux extraire le texte situé entre 2 tag : <tag>texte</tag>
J'ai fais ça, ça marche que si je n 'ai qu'une seule fois "<tag>texte</tag>" dans la page :
$texte = eregi("<tag>(.*)</tag>",$page,$regs);
Mais moi j'ai "<tag>texte</tag> sd kshdf <tag>texte2</tag> etc ..." dans une même page.
Comment faire pour récupérér texte, texte2 ???
Merci
j arrive pas à faire un truc tout con
Je veux extraire le texte situé entre 2 tag : <tag>texte</tag>
J'ai fais ça, ça marche que si je n 'ai qu'une seule fois "<tag>texte</tag>" dans la page :
$texte = eregi("<tag>(.*)</tag>",$page,$regs);
Mais moi j'ai "<tag>texte</tag> sd kshdf <tag>texte2</tag> etc ..." dans une même page.
Comment faire pour récupérér texte, texte2 ???
Merci
- fat-freddy
- WRInaute discret

- Messages: 158
- Inscription: 24 Nov 2003
un truk dans le genre marcherait peut être :
$tab = explode("</tag>", $page);
$texte1 = str_replace("<tag>","",stristr($tab[1], '<tag>'));
$texte2 = str_replace("<tag>","",stristr($tab[2], '<tag>'));
etc...
ensuite si tu as un nombre indéderminé d'éléments à recupérer tu peux faire une boucle..
edit > j'avais oublié un bout..
$tab = explode("</tag>", $page);
$texte1 = str_replace("<tag>","",stristr($tab[1], '<tag>'));
$texte2 = str_replace("<tag>","",stristr($tab[2], '<tag>'));
etc...
ensuite si tu as un nombre indéderminé d'éléments à recupérer tu peux faire une boucle..
edit > j'avais oublié un bout..
-

ecocentric - WRInaute accro

- Messages: 3602
- Inscription: 10 Fév 2004
- Code: Tout sélectionner
function extractall ($xml, $tag1, $tag2)
{
$ok = true;
$i = 0;
while ($ok==true)
{
$i1 = strpos($xml, $tag1);
$i2 = strpos($xml, $tag2);
if ( ($i1!==false) && ($i2!==false) )
{
//echo $i1 . " / " . $i2 . " - ";
$i1 = $i1 + strlen ($tag1);
$len = $i2 - $i1;
$data[$i] = substr ($xml, $i1, $len);
$xml = substr ($xml, $i2+strlen($tag2), strlen($xml));
//echo "<pre>" . htmlentities($data[$i]) . "</pre>\n\n\n";
$i++;
}
else
$ok = false;
}
return $data;
}
Ca fait l'extraction d'éléments entre deux tags XML et ça te sort un tableau d'éléments. Sinon, pour XML, il y a des bibliothèques pour faire cela plus proprement (ce n'est pas forcément plus fiable, par contre...).
4 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Expression régulière : Remplacement d'une chaine aléatoire
- extraire une sous chaine d'une chaine
- Extraire chaine et comparer
- Extraire une chaine de caractères
- re expression régulière...
- Expression régulière
- expression réguliere!please help!!!
- extraire variable indépendant dans chaine de caractere
- Extraire une chaine d'un fichier (eregi)
- Extraire un code postal dans une chaine
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
