neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 8 déc. 2010 à 18:38
Salut,
Dans ton masque : (.*?)
Je comprends pas l'intérêt du point d'interrogation...
Tu pourrais poster un bout de code HTML qui devrait satisfaire le masque et qui ne fonctionne pas ? (j'ai une flemme d'en faire un, tu peux pas imaginer ! surtout, j'aimerais tester avec le même code HTML que toi... ou alors carrément l'URL, en mp si tu préfères)
--
Neige
Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 8 déc. 2010 à 18:47
Ca y est, ça vient de me revenir.
T'as oublié l'option s qui permet au . de matcher aussi le caractère \n. Par défaut, les correspondances ne cherchent que sur la ligne courante (la première donc).
Y'a quand même un défaut... Par exemple, dans cette page :
Va récupérer le code HTML entre
et LE DERNIER
trouvé. C'est pas ça que tu veux... Il faudrait alors utiliser l'option U, pour que la PCRE ne soit pas gourmande... :
preg_match('`
(.*)
`sU', $html, $matches);
Mais là, elle va s'arrêter au PREMIER
, qui, dans mon exemple, est celui du div banner... C'est pas ça non plus que tu veux...
Si tu SAIS que le code HTML ne contient AUCUN autre div dans le header, alors ça ira (avec sU). Sinon, t'es obligé de parser le code de la page pour trouver le bon
(ligne par ligne, ou plutôt div par div).
--
Neige
Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)