Rechercher : dans
Par :

[PHP][EREG]Comment extraire un div

Dernière réponse le 20 nov 2008 à 03:33:51 Gerard Klein, le 12 avr 2005 à 15:52:59 
 Signaler ce message aux modérateurs

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 :

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 !

Meilleures réponses pour « [PHP][EREG]Comment extraire un div » dans :
Extraire le son d'une vidéo VoirVous avez un fichier vidéo dont vous voulez récupérer la bande-son ? Extraire en WAV avec VLC Pour ce faire, il faut d'abord récupérer VLC Media Player à l'adresse suivante : Télécharger VLC Puis, après installation : 1. Menu Fichier =>...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[Logiciels] Extraire toutes les images d'un PDF VoirVoici comment extraire toutes les images d'un fichier PDF. Avantage de cette méthode sur http://www.commentcamarche.net/faq/sujet-1036-: Les images sont extraites tel quel, sans perte de qualité (Par exemple, les JPEG sont extraits tel quel du...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...

1

alexlink, le 12 avr 2005 à 16:54:08

Le * selectionne tous, même le </div>.
Je ne connait pas trop les regex, mais tu devrais soustraire à ce * les </div>.
<i>Le language SMS n'est ni simple à lire, ni amusant. </i>

Répondre à alexlink

2

Gerard Klein, le 12 avr 2005 à 17:07:34

Merci pour ta réponse alexlink.
Hélas, j'ai déjà testé le [^</div>], et cela ne résoûd pas le problème...

Mais merci quand même !

Répondre à Gerard Klein

6

alexlink, le 13 avr 2005 à 14:30:44

Ah c'est bizarre ça ..... ^ ça veut dire sauf ?

Bah .... y'a pas une expression qui arrête le travail de la fonction à </div> ? ( avec tous les symbôles disponibles en regex, il doit bien y en avoir un qui fait ça :) ).
<i>Le language SMS n'est ni simple à lire, ni amusant. </i>

Répondre à alexlink

3

kij_82, le 12 avr 2005 à 17:20:06

Moi je te propose de couper la fin de ta chaine puisque c'est ca que tu veux oter non ?
C'est sur c 'est pas trop optimisé comme reponse mais en attendant, si tu veux pas trop t'éterniser la dessus !


Bonne chance
++

Répondre à kij_82

4

Gerard Klein, le 12 avr 2005 à 17:30:21

Merci kij pour ta réponse.

Oui, c'est en effet une solution possible.
Malheureusement, et comme tu le souligne, c'est pas trop optimisé, et compte tenu du grand nombre de page à traiter, cela me serait préjudiciable...
Cependant, ça reste une bonne solution temporaire !

@+

Répondre à Gerard Klein

5

kilian, le 12 avr 2005 à 19:56:57

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à....

Répondre à kilian

7

 kimist109, le 20 nov 2008 à 03:33:51

Met (.*?) a la place de (.*)

et lit la doc des regex


courage

Répondre à kimist109