Problème de regex

Problème de regex - PHP - Programmation

Marsh Posté le 11-11-2009 à 10:42:15    

Salut
 
Voici j'essaie de récupérer une date sur un site mais hélas, ça ne fonctionne pas comme je souhaite, voici le code source :
 
 

Code :
  1. \t\t\tDate de sortie cinéma :
  2. \t\t\t<span class="bold">
  3. \t\t\t\t
  4. \t\t\t\t\t\t<a href="/film/agenda.html?week=2009-11-11">11 novembre 2009</a>
  5. \t\t\t\t\t
  6. \t\t\t</span>


 
Il ne veut pas afficher les tabulations donc je les affiches directement, mais dans la source c'est comme ça :)
 
Et voici mon regex :
 

Code :
  1. preg_match('#<a href="/film/agenda.html?week=(.*?)">(.*?)</a>#is', $recup, $sortie_cinema);


 
mais ça ne me récupère strictement rien :(
 
Si quelqu'un me peut donner un coup de main.
 
Merci


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 11-11-2009 à 10:42:15   

Reply

Marsh Posté le 11-11-2009 à 11:14:57    

Salut,
 
Certains caractères ont des significations particulières dans les regex et ont besoin d'être échappées pour être interprétés dans leur sens « littéral ».
 
Le ? est un quantificateur, échappe le (celui dans les paramètres de l'url).
Le . signifie n'importe quel caractère, échappe le dans l'url.

Reply

Marsh Posté le 11-11-2009 à 11:24:51    

C'est à dire l'échapper ?


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 11-11-2009 à 11:37:39    

Échapper, signifie faire précéder d'un antislash.

Reply

Marsh Posté le 11-11-2009 à 11:51:15    

Code :
  1. preg_match('#<a href="/film/agenda\.html\?week=(.*?)">(.*?)</a>#is', $recup, $sortie_cinema);
 

comme ceci ?

 

car çe ne fonctionne pas quand même :(


Message édité par Orission le 11-11-2009 à 11:53:18

---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 11-11-2009 à 12:06:25    

Oui, c'est ça.
 
Y'a pas de raison que ça ne fonctionne pas si ton texte $recup est de même format que dans ton 1er message.

Reply

Marsh Posté le 11-11-2009 à 12:12:32    

ben ça ne fonctionne pas :(


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 11-11-2009 à 12:36:40    

Et pourtant.

 
Code :
  1. $recup = <<<RECUP
  2. \t\t\tDate de sortie cinéma :
  3. \t\t\t<span class="bold">
  4. \t\t\t\t
  5. \t\t\t\t\t\t<a href="/film/agenda.html?week=2009-11-11">11 novembre 2009</a>
  6. \t\t\t\t\t
  7. \t\t\t</span>
  8. RECUP;
  9.  
  10. preg_match('#<a href="/film/agenda\.html\?week=(.*?)">(.*?)</a>#is', $recup, $sortie_cinema);
  11.  
  12. print_r($sortie_cinema);


Message édité par badaboumsplash le 11-11-2009 à 12:38:25
Reply

Marsh Posté le 11-11-2009 à 12:51:03    

J'hallucine, ça fonctionne parfaitement en local, mais pas en live :/


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 11-11-2009 à 13:09:50    

Tu veux dire que ce simple bout de code fonctionne chez toi en local et pas sur un serveur online ?
 
Hébergeur ?

Reply

Marsh Posté le 11-11-2009 à 13:09:50   

Reply

Marsh Posté le 11-11-2009 à 13:49:47    

il fonctionne je me suis trompé dans une " :p
 
merci


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 11-11-2009 à 15:38:18    

un petit outil simpa pour les regexp
 
http://gskinner.com/RegExr/

Reply

Marsh Posté le 11-11-2009 à 16:20:29    

ah wai sympa
 
merci


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Sujets relatifs:

Leave a Replay

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