[PHP][EREG]Comment extraire un div
Gerard Klein
-
xenetis -
xenetis -
Bonjour,
Les expressions rationnelles, c'est quand on croit les comprendre qu'on s'aperçoit qu'en fait... non.
Voilà, je fais un script qui doit chercher le contenu de la balise <div id="menu">contenu balise</div>
Je fait donc :
Et ça marche pas... En fait, la balise de fermeture n'est pas la balise de fermeture du div menu, mais de son conteneur (la page...).
Comment faire pour qu'il ne selectionne le contenu que jusqu'à la balise de fermeture suivnate ?
Par avance, merci !
Les expressions rationnelles, c'est quand on croit les comprendre qu'on s'aperçoit qu'en fait... non.
Voilà, je fais un script qui doit chercher le contenu de la balise <div id="menu">contenu balise</div>
Je fait donc :
eregi ('<div id="menu">(.*)</div>',$content,$test);
Et ça marche pas... En fait, la balise de fermeture n'est pas la balise de fermeture du div menu, mais de son conteneur (la page...).
Comment faire pour qu'il ne selectionne le contenu que jusqu'à la balise de fermeture suivnate ?
Par avance, merci !
A voir également:
- [PHP][EREG]Comment extraire un div
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Extraire image pdf - Guide
- Easy php - Télécharger - Divers Web & Internet
- Extraire texte d'une image - Guide
3 réponses
Pour avoir cherché un bon moment ce genre de chose je poste une réponse puisque ce forum ressort dans les premier :
Donc si tu as par exemple :
Et que tu veux récupérer seulement le contenu de la balise menu tu peux utiliser la fonction preg_match_all.
La syntaxe est :
Ceci te prendra que le contenu du div menu et s'arrêtera au premier </div> et non au dernier comme la fonction ereg ...
Donc si tu as par exemple :
<div id="menu">contenu de la balise menu</div> <div id="menu2">contenu de la balise menu2</div>
Et que tu veux récupérer seulement le contenu de la balise menu tu peux utiliser la fonction preg_match_all.
La syntaxe est :
preg_match_all("#<div id=\"menu\">(.*)</div>#", $mon_texte, $return);
Ceci te prendra que le contenu du div menu et s'arrêtera au premier </div> et non au dernier comme la fonction ereg ...
Le * selectionne tous, même le </div>.
Je ne connait pas trop les regex, mais tu devrais soustraire à ce * les </div>.
Je ne connait pas trop les regex, mais tu devrais soustraire à ce * les </div>.
Salut,
Je rencontre parfois le même problème que toi. C'est à dire que l'expression ne prends pas les blocs un par un mais le plus gros bloc qui correspond à l'expression.
Je n'ai toujours pas trouvé de solution à ça , c'est dommage que les expressions régulières n'aient pas d'opérateur de négation, ce serait bien pratique....
Mais je suis sûr qu'il ya une parade à celà....
Je rencontre parfois le même problème que toi. C'est à dire que l'expression ne prends pas les blocs un par un mais le plus gros bloc qui correspond à l'expression.
Je n'ai toujours pas trouvé de solution à ça , c'est dommage que les expressions régulières n'aient pas d'opérateur de négation, ce serait bien pratique....
Mais je suis sûr qu'il ya une parade à celà....