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 30/05/2011, 22h02   #1
Invité de passage
 
Inscription : septembre 2009
Messages : 39
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 39
Points : 0
Points : 0
Par défaut Aide pour une regex

Bonjour,

je vous écris car j'ai un gros problème avec une regex. Aussi merci d'avance pour votre aide precieuse !!
mon but est de récupérer les infos suivantes : titre et contenu

cf le code html ci-dessous tel qu'on me le présente (avec pleins d'espaces)

Code :
1
2
3
4
5
6
7
8
9
10
 
<li>
<p class="class1">
titre
</p>
<p class="class2">
 
contenu
</p>
</li>


pour récupérer ces deux infos j'ai effectuer la regex suivante mais je ne sais pas du tout comment gérer les sauts de ligne =( du coup elle est foireuse et ne fonctionne pas=(
mon but est de recuperer les mots : titre et contenu sans les espace =(


Code :
1
2
 
preg_match_all('#<li>\s<p class="class1">\s(.*?)<\/p>\s<p class="class2">(.*?)<\/p>\s<\/li>#is',$content,$infos, PREG_PATTERN_ORDER);
kairi084 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 30/05/2011, 22h12   #2
Membre du Club
 
Inscription : juin 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 60
Points : 66
Points : 66
Les retours à la ligne sont des caractères blancs (ils font partie de \s).

Est-ce que ça marcherait :
Code PHP :
preg_match_all('#<li>\s*<p class="class1">\s(.*?)<\/p>\s*<p class="class2">(.*?)<\/p>\s*<\/li>#is',$content,$infos, PREG_PATTERN_ORDER);
?
Rom_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 22h31   #3
Invité de passage
 
Inscription : septembre 2009
Messages : 39
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 39
Points : 0
Points : 0
bonsoir,

désolé mais cela ne semble pas marcher=( les gros espaces demeurent
kairi084 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 23h15   #4
Membre régulier
 
Homme
Développeur Web
Inscription : octobre 2009
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Vietnam

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2009
Messages : 72
Points : 99
Points : 99
Par défaut trim

Bonjour,
Pourquoi ne pas utiliser la fonction trim() sur le tableau $infos?
matlow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 08h45   #5
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Si le but est de récupérer des informations d'un document HTML, il est préférable d'utiliser DOM plutôt que les expressions régulières : http://fr2.php.net/manual/fr/book.dom.php
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h30.


 
 
 
 
Partenaires

Hébergement Web