REGEX - Récupérer contenu entre balises HTML

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : REGEX - Récupérer contenu entre balises HTML

par supercanard » 01 nov. 2008, 01:13

En fait oui ça marche bien ^^

par Berzemus » 01 nov. 2008, 00:17

Oui, les modificateurs sont cumulables.

Pour le lookahead et lookbehind, j'ai pas vérifié leur fonctionnement sous php, mais théoriquement ils devraient fonctionner.

par supercanard » 31 oct. 2008, 19:04

Merci bien,
J'ai pas tout compris le masque je vais essayer de l'analyser ;)

Autre question bête, si je veut lui ajouter en plus du paramètre s, le paramètre i pour que ce soit insensible à la casse, c'est possible ?
'#<body>(.*?)</body>#si'
<= ça n'a pas l'air bon, mais pas d'erreur par contre

par Berzemus » 31 oct. 2008, 11:04

J'utiliserais plutôt un lookahead et un lookbehind, qui vérifient si une certaine chaine se trouve bien avant et derrière ce qu'on recherche:

Code : Tout sélectionner

(?<=<body>)(.*)(?=</body>)
Je pense aussi qu'il va falloir spécifier le paramètre "s", pour que tout le texte que tu comptes vérifier soit interprété comme une seule ligne: en fait, les expressions régulières ne fonctionnent que par ligne.

REGEX - Récupérer contenu entre balises HTML

par supercanard » 30 oct. 2008, 22:38

Bonsoir,

J'essaye de récupérer du contenu html entre les balises <body> mais rien à faire.
J'ai pourtant l'impression que mon masque est bon ?
preg_match( '#<body>(.*?)</body>#', $test, $matches );
Le contenu de $test est le résultat de file_get_contents()
Je ne sais pas si il peut y avoir un rapport ?