Extraire une chaine avec eregi()

Chidi
Invité n'ayant pas de compte PHPfrance

08 mai 2007, 19:28

Bonjour à tous !

Je tente d'extraire une chaine de caractères contenu entre 2 balises (<ma_balise> et </ma_balise>).
Dans mon premier, ça marche, mais dans mon second cas, ça ne marche pas.

Mon premier cas :

Code : Tout sélectionner

<ma_balise>la chaine à extraire</ma_balise>
Mon second cas (les balises <p> et </p> font parti de la chaine à extraire):

Code : Tout sélectionner

<ma_balise><p>la chaine à extraire</p></ma_balise>
Pour les 2 cas, j'utilise le code suivant :
if (eregi("<ma_balise>(.*)</ma_balise>", $xml, $out)) echo $out[1]
Avez-vous une solution, svp ?

ViPHP
ViPHP | 5924 Messages

08 mai 2007, 19:39

Ca ne marche pas, c'est à dire ?
(j'adore quand c'est précis comme ca...)

Chidi
Invité n'ayant pas de compte PHPfrance

08 mai 2007, 20:10

Eh bien, dans mon premier cas, mon echo $out[1] donne "la chaine à extraire".

Dans mon second cas, mon echo $out[1] donne une chaine vide.

Chidi
Invité n'ayant pas de compte PHPfrance

10 mai 2007, 12:13

Je reformule :

Le code suivant retourne "la chaine à extraire" :
if (eregi("<ma_balise>(.*)</ma_balise>", "blah blah...<ma_balise>la chaine à extraire</ma_balise>... blah blah...", $out)) echo $out[1]

Mais le code suivant retourne une chaine vide :
if (eregi("<ma_balise>(.*)</ma_balise>", "blah blah...<ma_balise><p>la chaine à extraire</p></ma_balise>... blah blah...", $out)) echo $out[1]
Pour ce deuxième cas, je souhaite récupérer la chaine "<p>la chaine à extraire</p>".

Auriez-vous une solution ou une piste, svp ?

ViPHP
ViPHP | 5924 Messages

10 mai 2007, 13:54

Ecoute, moi ce code m'a l'aire correct, à mon avis le problème doit venir d'autre part. Essaye peut être de faire un print_r($out); après le eregi.

Chidi
Invité n'ayant pas de compte PHPfrance

12 mai 2007, 13:02

ok, je confirme que ça fonctionne.
Effectivement, le problème venait d'autre part (où ?).
Merci Sékiltoyai