expressions regex ???

expressions regex ??? - PHP - Programmation

Marsh Posté le 26-05-2005 à 11:10:30    

bonjour,
voila je ne comprends pas tout j'ai fait ca:
 

Code :
  1. $titre = eregi("rang(.*))", $page, $regs);
  2.  
  3.  
  4.       echo '<p>Rang : '. $regs[1]. '</p>';


 
ce qui me donne ca:

Rang : : 51 (1145 pts


 
or je voudrais ca :

Rang : : 51


 
alors je fais ca:

Code :
  1. $titre = eregi("rang(.*)(", $page, $regs); //changement de la parenthese
  2.  
  3.  
  4.       echo '<p>Rang : '. $regs[1]. '</p>';


 
mais ca me donne ca:


Warning: eregi(): REG_EPAREN in d:\wwwroot\test\test.php on line 14


 
pourquoi??? dsl je debute en regex
 
ou alors comment faire pour autoriser juste les chiffres je sais que c'est ca:[:digit:] mais où le mettre?
 
merci d'avance

Reply

Marsh Posté le 26-05-2005 à 11:10:30   

Reply

Marsh Posté le 26-05-2005 à 11:25:53    

t'as une parentheses en trop apres le (.*)

Reply

Marsh Posté le 26-05-2005 à 11:26:25    

Faudrait nous decrire les données que tu veux traiter et ce que tu veux extraire comme info de ces données pour k'on t'aide T_T

Reply

Marsh Posté le 26-05-2005 à 11:26:56    

ma réponse etait super pertinente :D
 
 
edit : afbilou a raison, on ne sait pas quelle tete a la chaine $page


Message édité par benamoubeach le 26-05-2005 à 11:27:36
Reply

Marsh Posté le 26-05-2005 à 11:27:33    

les parenthèses sont des méta-caractères donc il faut les echapper, et utilise preg c'est plus efficace.
un exemple :

Code :
  1. if (preg_match("#rang: ([0-9]*)#", $page, $match))

Reply

Marsh Posté le 26-05-2005 à 11:28:33    

oki voila le site:http://www.clan-france.com/index.p [...] 9&cid=1873
 
et je voudrais recuperer le rang, sans le nombre de points
 
voici mon code:

Code :
  1. $fp = fopen("http://www.clan-france.com/index.php?pid=19&cid=1873", "r" ); // lecture de la page
  2.  
  3.       while (!feof($fp)) {
  4.  
  5.       $page .= fgets($fp, 4096); e
  6.  
  7.       }
  8.  
  9.       $titre = eregi("rang(.*)( ", $page, $regs);
  10.  
  11.  
  12.       echo '<p>Rang : '. $regs[1]. '</p>';
  13.  
  14.  
  15.  
  16.       fclose($fp);


si je mets pas la penrenthese apres (.*) il me sort trop d'info je veux juste le rang
 
merci

Reply

Marsh Posté le 26-05-2005 à 11:30:49    

if(eregi('Rang ([0-9]+) (.*)',$page,$regs))
{
 print_r($regs);
}

Reply

Marsh Posté le 26-05-2005 à 11:35:18    

benamoubeach a écrit :

if(eregi('Rang ([0-9]+) (.*)',$page,$regs))
{
 print_r($regs);
}


 
euh ca me sort aucun resultat normal?

Reply

Marsh Posté le 26-05-2005 à 11:35:29    

en fait ton truc il est pas possible pcke regarde le code source, ya des span de partout donc faut faire un strip tags

Reply

Marsh Posté le 26-05-2005 à 11:35:36    

oui c normal :D

Reply

Marsh Posté le 26-05-2005 à 11:35:36   

Reply

Marsh Posté le 26-05-2005 à 11:37:05    


et il manque ':' dans ta regex

Reply

Marsh Posté le 26-05-2005 à 11:38:04    

Code :
  1. $fp = fopen("http://www.clan-france.com/index.php?pid=19&cid=1873", "r" ); // lecture de la page
  2. $page = '';
  3. while (!feof($fp)) {
  4. $page .= fgets($fp, 4096);
  5. }
  6. if(eregi('Rang : ([0-9]+) (.*)',strip_tags($page),$regs))
  7. {
  8. $rang = $regs[1];
  9. }
  10. fclose($fp);


 
edit : ouep soju g vu ca apres :) pis tfacon jsuis loin d'etre fort en regex, j'ai juste compris a peu pres le principe :)


Message édité par benamoubeach le 26-05-2005 à 11:38:47
Reply

Marsh Posté le 26-05-2005 à 11:40:51    

yes merci, mais pourais avoir des explications? :D
 
a quoi sert le + dans ([0-9]+)????
 
et els espaces sont obligatoire?


Message édité par dedefou le 26-05-2005 à 11:41:29
Reply

Marsh Posté le 26-05-2005 à 11:41:46    

ca veut dire : au moins un chiffre

Reply

Marsh Posté le 26-05-2005 à 11:44:55    

merci bcp

Reply

Sujets relatifs:

Leave a Replay

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