Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2008, 22h04   #1
Membre chevronné
 
Avatar de |PaRa-BoL
 
Inscription : novembre 2003
Messages : 737
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 737
Points : 782
Points : 782
Par défaut preg_match retour chariot

Bonsoir,

J'ai quelque chose comme :

Code :
1
2
3
4
5
6
 
      <div class="infos">    
             blabla 
                 blabla
             blabla
               </div><p>
etc... (Avec des retour chariots, des tabulations, etc...)

je veux récupérer ce qu'il y a dans le div.

Code :
preg_match('#<div class="infos">(.*)</div>#s', $content, $match);
Donc avec le modifier s pour prendre en compte les sauts de lignes.

Le problème c'est qu'il me récupère tout ce qu'il y a après le <div class="infos"> et ne s'arrête pas au premier </div> mais à un autre beaucoup plus loin.

Merci
__________________
http://www.ape-project.org/
|PaRa-BoL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 23h49   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Excellente description du phénomène de "gourmandise" (greed) de l'étoile .
Pour éviter ce comportement, il faut utiliser l'étoile paresseuse *? à la place de l'étoile gourmande *. L'étoile paresseuse s'arrête à la première occasion, donc au premier </div>.
Code :
preg_match('#<div class="infos">(.*?)</div>#s', $content, $match);
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 23h55   #3
Membre chevronné
 
Avatar de |PaRa-BoL
 
Inscription : novembre 2003
Messages : 737
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 737
Points : 782
Points : 782
Merci
__________________
http://www.ape-project.org/
|PaRa-BoL est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h41.


 
 
 
 
Partenaires

Hébergement Web