expression reguliere

expression reguliere - PHP - Programmation

Marsh Posté le 26-08-2003 à 10:47:23    

Bonjour,
 
j'ai un petit soucis lié à ma non connaissance des expressions regulieres ...
 
voila mon probleme :
je lis la source d'une page et je voudrai recupéré l'argument d'une balise nommée "libelle" ...  c pas trop dur, mais j'y arrive pas ...
 
Merci d'éclairer ma lanterne :)
 
le ptit bout de code en question :
 

Code :
  1. $site = "www.monurl.com";
  2. $file = @fopen($site, "rb" );
  3. while (!feof($file)) {
  4.   $line = @fgets($file, 1024);
  5.   if (eregi(" ...?....", $line, $out)) {
  6.     $title = $out[1];
  7.     break;
  8.   }
  9. }


---------------
L'arsenic est present a l'etat de traces dans toutes matieres vivantes. www.arsenick.net
Reply

Marsh Posté le 26-08-2003 à 10:47:23   

Reply

Marsh Posté le 26-08-2003 à 10:58:26    

est-ce que tu pourrais montrer un example de ce que tu veux recuperer exactement?  
Néanmoins si c'est quelque chose dans ce genre la:

Code :
  1. <div id="libelle">balalblalbla</div>


ta regex sera dans ce gout la

Code :
  1. /<div id="libelle">(.*?)<\/div>/

Reply

Marsh Posté le 26-08-2003 à 11:00:35    

c'est pas tout a fait ca :
 
le fichier que je lis à une balise de la forme :
 
 
<Libelle nom="MSG_AUCUN_EVT">blh blah</Libelle>
 
 
en fait je veux recupérer MSG_AUCUN_EVT  ...


---------------
L'arsenic est present a l'etat de traces dans toutes matieres vivantes. www.arsenick.net
Reply

Marsh Posté le 26-08-2003 à 11:23:50    

Code :
  1. /<Libelle nom="(.*?)">(.*?)<\/Libelle>/


 
dans out[1] tu aurrais le nom, dans out[2] le contenu entre tes deux balises...


Message édité par anapajari le 26-08-2003 à 11:24:12
Reply

Marsh Posté le 26-08-2003 à 11:40:11    

j'ai :
Warning: REG_BADRPT: in d:\easyphp\www\antoine\chrono.php on line 6
 
qui s'affiche (4 fois), et j'ai mis :
 
 

Code :
  1. while (!feof($file)) {
  2.   $line = @fgets($file, 1024);
  3.   if (eregi('/<Libelle nom="(.*?)">(.*?)<\/Libelle>/', $line, $out)) {
  4.     $title = $out[1];
  5.   }
  6. }


---------------
L'arsenic est present a l'etat de traces dans toutes matieres vivantes. www.arsenick.net
Reply

Marsh Posté le 26-08-2003 à 11:49:50    

arf désolé je te l'ai mis à la sauce perl la regex, essaye ça plutot:

Code :
  1. eregi('<Libelle nom="(.*)">(.*)<\/Libelle>', $line, $out)


Message édité par anapajari le 26-08-2003 à 11:50:08
Reply

Marsh Posté le 26-08-2003 à 11:50:41    

marche nickel    
 
 :jap:  
 
merci beaucoup


---------------
L'arsenic est present a l'etat de traces dans toutes matieres vivantes. www.arsenick.net
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed