Bonjour,
Je veux récupérer le tableau du classement de mon équipe de basket sur le site de la fédération mais suite à une refonte de celui-ci, ma regex ne fonctionne plus.
Pourriez-vous me dépanner ?
Voici une version simplifiée:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| function extract_ranking_from_FFBB() // Création de la fonction permettant d'afficher le classement et le calendrier d'une page FFBB
{
$url_code = "b5e6211de522b5e6211e678d"
$page = file_get_contents('http://resultats.ffbb.com/championnat/classements/'.$url_code.'.html'); //Chargement du contenu de la page FFBB dans une variable
//Recherche des lignes de tableau de classement au sein de la page
preg_match_all('#(<tr class="(altern-2|no-altern-2)">\s*<td class="gauche" align="center">\s*[0-9]+\s*</td>\s*<td align="left">\s*<a class="tableau" target="_parent" href=".*">[a-zA-Z0-9_/() \'-éè]*</a>\s*</td>\s*(<td align="center">[0-9]*\.?[0-9]*</td>\s*){15}\s*</tr>)#isU',$page,$lignesclassement);
//Ensuite on reconstitue le tableau avec la mise en forme du site du club
echo '<h1>Classement officiel FFBB</h1><br>';
//D'abord l'en-tête
echo '<div style="text-align: center;">
<table class="tableauFFBB">
<tr class="table_title">
<td rowspan=2 align="center">Pos.</td>
<td NOWRAP rowspan=2>Equipe</td>
<td rowspan=2>Pts</td>
<td align=center colspan=4>Rencontres</td>
<td rowspan=2 align="center">Pén.</td>
<td rowspan=2 align="center">Forf.</td>
<td rowspan=2 align="center">Déf.</td>
<td align=center colspan=2>Pénalités</td>
<td align=center colspan=3>Points</td>
</tr>
<tr class="table_title">
<td align="center">J</td>
<td align="center">G</td>
<td align="center">P</td>
<td align="center">N</td>
<td align="center">Arb</td>
<td align="center">Ent</td>
<td align="center">M</td>
<td align="center">E</td>
<td align="center">Q</td>
</tr>';
//Puis les lignes extraites grâce à la REGEX
$balises_classement_a_remplacer = array('#<a href=".*" class="(tableau)">#isU','#</a>#isU'); //on fait le ménage des liens html
$balises_classement_remplacees = array('','');
foreach ($lignesclassement[1] as $ligneclassement) {
echo preg_replace($balises_classement_a_remplacer,$balises_classement_remplacees, $ligneclassement);
}
echo '</table></div>';
} |
J'ai fait plusieurs tests et je constate que si j'utilise l'expression suivante, je capte bien les 10 lignes qui constituent le tableau.
preg_match_all('#(<tr class="(altern-2|no-altern-2)">\s*<td )#isU',$page,$lignesclassement);
Par contre avec l'expression ci-dessous, rien ne sort.
preg_match_all('#(<tr class="(altern-2|no-altern-2)">\s*<td class="gauche" align="center">)#isU',$page,$lignesclassement);
Partager