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 11/08/2011, 10h11   #1
Futur Membre du Club
 
Inscription : juin 2005
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 44
Points : 16
Points : 16
Par défaut Récupérer des chaines compliquées

Bonjour à tous,

avant de faire une fonction de fou, je voudrai savoir si les REGEX peuvent m'aider pour ce qui suit :

J'ai une chaine de caractères qui contient sur une seule ligne :

Code :
1
2
3
4
5
6
7
blabla%%%%%%%**********
<a href="/football/FootballFicheMatch3840_2375.html" >5-0        </a>
blabla%%%%%%%*******
<a href="/football/FootballFicheMatch67541_5460465.html" >  5-2        </a>
blabla%%%%%%%*********
<a href="/football/FootballFicheMatch8295065_8409.html" >3-7        </a>
blabla%%%%%%%****
Ce que je dois faire au final, c'est récupérer les scores.

J'ai mis des % et * pour dire que ça correspond à n'importe quoi, je ne sais pas ce qu'il y a à cette place.

Au final, vous aurez compris que "/football/FootballFicheMatch" est commun et qu'après il y a des chiffres puis .html

Voilà, j'espère que j'ai été claire et merci à qui saura m'aider
gianni17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 10h48   #2
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,

Tu veux récupérer le texte contenu dans les balises <a /> ?

Tu peux essayer ceci :
Code :
1
2
3
4
5
6
7
<?php
$in = 'blabla%%%%%%%**********<a href="/football/FootballFicheMatch3840_2375.html" >5-0        </a>blabla%%%%%%%*******<a href="/football/FootballFicheMatch67541_5460465.html" >  5-2        </a>blabla%%%%%%%*********<a href="/football/FootballFicheMatch8295065_8409.html" >3-7        </a>blabla%%%%%%%****';
 
preg_match_all('#<a[^>]+>([^<]+)</a>#', $in, $matches);
 
var_dump($matches);
?>
Sinon, tu peux jeter un oeil du côté de DOM : http://www.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 00
Vieux 16/08/2011, 16h47   #3
Futur Membre du Club
 
Inscription : juin 2005
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 44
Points : 16
Points : 16
Bonjour,

l'idée c'est presque ça, car il y a d'autres liens, mais je dois récupérer ce qu'il y a dans les <a> dont le href commence par :

Code :
href="/football/FootballFicheMatch
et ça normalement, on doit pouvoir écrire cette chaine dans la fonction regex.

Merci
gianni17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 09h08   #4
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
Hello,

Le plus simple est d'utiliser DOM : http://www.php.net/manual/fr/book.dom.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$in = 'blabla%%%%%%%**********<a href="/football/FootballFicheMatch3840_2375.html" >5-0        </a>blabla%%%%%%%*******<a href="/football/FootballFicheMatch67541_5460465.html" >  5-2        </a>blabla%%%%%%%*********<a href="/football/FootballFicheMatch8295065_8409.html" >3-7        </a>blabla%%%%%%%****';
 
$doc = new DOMDocument();
$doc->loadHTML($in);
 
$xpath = new DOMXpath($doc);
$entries = $xpath->query('//a[starts-with(@href, "/football/FootballFicheMatch")]');
 
foreach ($entries as $entry) {
	echo $entry->nodeValue;
}
?>
__________________
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 00
Vieux 17/08/2011, 16h03   #5
Futur Membre du Club
 
Inscription : juin 2005
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 44
Points : 16
Points : 16
impec, au final ça fait quand même ce que je veux.

Merci
gianni17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 01h09   #6
Nouveau Membre du Club
 
Inscription : juillet 2009
Messages : 110
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 110
Points : 37
Points : 37
Je me pose une grosse question dans ce cas.

Au niveau des ressources, c'est mieux quoi, utiliser la REGEX ou bien le DOM ?
gianni7033 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 10h51.


 
 
 
 
Partenaires

Hébergement Web