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 12/05/2006, 16h53   #1
Modérateur
 
Avatar de blueice
 
Inscription : mars 2003
Messages : 3 422
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2003
Messages : 3 422
Points : 4 110
Points : 4 110
Envoyer un message via ICQ à blueice Envoyer un message via MSN à blueice Envoyer un message via Skype™ à blueice
Par défaut Récupération de chaîne

Salut,

Je ne suis pas un as des expressions régulières...
J'ai commencé à faire quelque chose mais je bloque, je voudrais récupérer tous les noms des styles CSS dans une page html.(id et class)

J'ai fait ca :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
 
$chaine=file_get_contents('http://www.toto.com/index.html'); 
 
$motif='`id="[^]+"[^<]+`'; 
preg_match_all($motif,$chaine,$out); 
 
$count=count($out[0]); 
 
for($i=0;$i<$count;$i++) 
{ 
echo $out[0][$i],'<br/>'; 
} 
 
$motif2='`class="[^]+"[^<]+`'; 
preg_match_all($motif2,$chaine,$out); 
 
$count=count($out[0]); 
 
for($i=0;$i<$count;$i++) 
{ 
echo $out[0][$i],'<br/>'; 
}
Mais je ne voudrais que les noms, comment je fais.

P.S. : Comment on colorise le code PHP ? j'ai essayé les balises [php][/php] sans succès.
__________________
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
Pensez également à cocher

Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

Dimension Internet - Carnet Web
Imprimerie Nice
blueice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 17h22   #2
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
Tu n'as pas de capture dans tes motifs

essaye ca :

Code :
$motif='#id="(.*?)"#mi';
Code :
$motif2='#class="(.*?)"#mi';
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 17h23   #3
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
salut

tentes ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
$chaine=file_get_contents('http://www.toto.com/index.html'); 
 
$motif='< (id|class) *= *"([^"]+)">';
preg_match_all($motif,$chaine,$out, PREG_SET_ORDER); 
 
$count=count($out); 
 
for($i=0;$i<$count;$i++) 
{ 
echo $out[$i][2].' ['.$out[$i][1].']<br/>'; 
}
pour colorier le code je crois que c'est : http://php.developpez.com/bbcode
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 17h27   #4
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
Je prefere ta soluce Swoög mais ca risuqe de ne pas etre ordonne dans le tableau de retour.

mais c plus class
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 17h33   #5
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
si tu veux avoir les class d'un côté et les id de l'autres, ça peut se faire aussi
(je suis de bonne humeur paske j'ai fini mes partiels aujourd'hui, donc t'as droits à deux solutions ) :
Un : une seule regexp, on met le tout dans un tableau ^^
Code :
1
2
3
4
5
6
7
8
$chaine=file_get_contents('http://www.toto.com/index.html'); 
 
$motif='< (id|class) *= *"([^"]+)">';
preg_match_all($motif,$chaine,$out, PREG_SET_ORDER); 
 
$count=count($out); 
$styles_name = array('id'=>array(), 'class' => array());
for($i=0;$i<$count;$i++) $styles_name[$out[$i][1]][] = $out[$i][2];
dans $styles_name['id'] t'as la liste des id, dans $styles_name['class'] t'as la liste des class

Deux : deux regexps (et ici, affichage direct) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$chaine=file_get_contents('http://www.toto.com/index.html'); 
 
 
$motif='< id *= *"([^"]+)">';
preg_match_all($motif,$chaine,$out, PREG_SET_ORDER); 
 
$count=count($out); 
echo 'id : <br />';
for($i=0;$i<$count;$i++)  echo $out[$i][1].'<br/>'; 
 
 
$motif='< class *= *"([^"]+)">';
preg_match_all($motif,$chaine,$out, PREG_SET_ORDER); 
 
echo 'class : <br />';
$count=count($out);
for($i=0;$i<$count;$i++) echo $out[$i][1].'<br/>';
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 17h34   #6
Modérateur
 
Avatar de blueice
 
Inscription : mars 2003
Messages : 3 422
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2003
Messages : 3 422
Points : 4 110
Points : 4 110
Envoyer un message via ICQ à blueice Envoyer un message via MSN à blueice Envoyer un message via Skype™ à blueice
Swoög ca ne marche pas et Stunti, ton code donne la même chose que moi :

Résultat par exemple :

id="content"
id="footer"
class="hidden"
class="recherche"

moi je voudrais uniquement ce qu'il y a entre ""

content
footer
hidden
recherche



P.S. : Et bien sûr si possible du premier coup...
__________________
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
Pensez également à cocher

Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

Dimension Internet - Carnet Web
Imprimerie Nice
blueice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 17h48   #7
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Excuse moi, en effet, ça marchait du premier coup...

on pourrait encore les améliorer un peu (style pour prendre en compte les ' en plus des ")

j'ai modifier mes codes, ils fonctionnent maintenant, testés désolé ^^
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 17h54   #8
Modérateur
 
Avatar de blueice
 
Inscription : mars 2003
Messages : 3 422
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2003
Messages : 3 422
Points : 4 110
Points : 4 110
Envoyer un message via ICQ à blueice Envoyer un message via MSN à blueice Envoyer un message via Skype™ à blueice
Désolé Swoog, mais aucun des deux ne fonctionnent...
Tu as testé sur une adresse ?
__________________
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
Pensez également à cocher

Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

Dimension Internet - Carnet Web
Imprimerie Nice
blueice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 18h11   #9
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
Allez c'est cadeaux


Code :
1
2
3
4
5
6
7
8
9
10
$motif='#id=(\'|")(.*?)(\'|")#mi';
 
preg_match_all($motif,$chaine,$out); 
 
$count=count($out[0]); 
 
for($i=0;$i<$count;$i++) 
{ 
echo $out[2][$i],'<br/>'; 
}
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 18h20   #10
Modérateur
 
Avatar de blueice
 
Inscription : mars 2003
Messages : 3 422
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2003
Messages : 3 422
Points : 4 110
Points : 4 110
Envoyer un message via ICQ à blueice Envoyer un message via MSN à blueice Envoyer un message via Skype™ à blueice
Merci ca marche

Je chercherais à comprendre le motif ce soir...
__________________
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
Pensez également à cocher

Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

Dimension Internet - Carnet Web
Imprimerie Nice
blueice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 18h21   #11
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Heu pour moi les deux marches (même les trois) : http://informatique-en-vrac.homedns.org/test.php
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web