Bonjour,
Je voudrais savoir si quelqu'un pourrait m'aider au sujet des expressions régulières en php.
En effet je souhaite reprendre un tableau venant du site de la fédération de volley ball pour l'afficher au propre sur mon site, mais je me suis rendu compte que leur tableau n'était pas bien réalisé, il manque toutes les fermetures de balise sur les lignes et colonnes du tableau comme vous pouvez le voir à ce lien (en regardant le code source) : www.volley.asso.fr/nouveau/WEBN1M
Cela me pose un problème pour bien remettre en page à ma guise le premier des 2 tableaux.
J'ai donc essayé avec les expressions régulières de fermer ses balises... mais je n'y arrive pas complètement.
Je dois donc récupérer ce qu'il y a entre 2 balises <td>(texte)<td> et le remplacer par <td>(texte)</td><td> or le problème qui m'arrive c'est que la lecture du fichier se fait block par block.
Mon code est le suivant :
-------------------------------------
Voici le résultat ici : Monsite page Tableau
-------------------------------------
Pour exemple :
<td>Texte1<td>Texte2<td>Texte3<td>Texte4<tr>
donne avec mon code :
<td>Texte1</td><td>Texte2<td>Texte3</td><td>Texte4<tr>
il prend le block : <td>Texte1<td> ---> <td>Texte1</td><td>
puis le block : <td>Texte2<td> ------> <td>Texte2</td><td>
or je souhaiterai :
<td>Texte1</td><td>Texte2</td><td>Texte3</td><td>Texte4</td><tr>
Je pense qu'il faut trouver Métacaractères ou autre qui permette de prendre une chaine jusqu'à une certain groupe de caractère donné (ici : <td>) mais que la lecture continue à partir du dernier groupe de carctère (<td>).
Je ne sais pas si cela existe, j'ai bcp cherché peut être mal cherché... existe t il une solution?
Si quelque a les compétences ou se sent le coeur de m'aider...
Je vous remercie d'avance à bientôt j'espère.
Modifié par ouinouin (18 Nov 2007 - 23:20)
Je voudrais savoir si quelqu'un pourrait m'aider au sujet des expressions régulières en php.
En effet je souhaite reprendre un tableau venant du site de la fédération de volley ball pour l'afficher au propre sur mon site, mais je me suis rendu compte que leur tableau n'était pas bien réalisé, il manque toutes les fermetures de balise sur les lignes et colonnes du tableau comme vous pouvez le voir à ce lien (en regardant le code source) : www.volley.asso.fr/nouveau/WEBN1M
Cela me pose un problème pour bien remettre en page à ma guise le premier des 2 tableaux.
J'ai donc essayé avec les expressions régulières de fermer ses balises... mais je n'y arrive pas complètement.
Je dois donc récupérer ce qu'il y a entre 2 balises <td>(texte)<td> et le remplacer par <td>(texte)</td><td> or le problème qui m'arrive c'est que la lecture du fichier se fait block par block.
Mon code est le suivant :
-------------------------------------
$fichierDistant = file_get_contents("http://www.volley.asso.fr/nouveau/WEBN1M.HTM");
preg_match_all('`<table [^>]*>(.*?)</table>`si', $fichierDistant, $result, PREG_PATTERN_ORDER);
$ClassementN1 = $result[0][0];
$ClassementN1 = preg_replace('`<table([^>]*)>`si', '<table CELLSPACING="1" CELLPADDING="2" class="Table_Classement">', $ClassementN1);
$ClassementN1 = preg_replace('`<(tr|td)([^>]*)>`si', '<\1>', $ClassementN1);
function ajoute($masque)
{
return $masque[1].($masque[2]."</td>").$masque[3];
}
$ClassementN1 = preg_replace_callback('`(<td>)(.*?)(<td>)`si','ajoute',$ClassementN1);
Voici le résultat ici : Monsite page Tableau
-------------------------------------
Pour exemple :
<td>Texte1<td>Texte2<td>Texte3<td>Texte4<tr>
donne avec mon code :
<td>Texte1</td><td>Texte2<td>Texte3</td><td>Texte4<tr>
il prend le block : <td>Texte1<td> ---> <td>Texte1</td><td>
puis le block : <td>Texte2<td> ------> <td>Texte2</td><td>
or je souhaiterai :
<td>Texte1</td><td>Texte2</td><td>Texte3</td><td>Texte4</td><tr>
Je pense qu'il faut trouver Métacaractères ou autre qui permette de prendre une chaine jusqu'à une certain groupe de caractère donné (ici : <td>) mais que la lecture continue à partir du dernier groupe de carctère (<td>).
Je ne sais pas si cela existe, j'ai bcp cherché peut être mal cherché... existe t il une solution?
Si quelque a les compétences ou se sent le coeur de m'aider...
Je vous remercie d'avance à bientôt j'espère.
Modifié par ouinouin (18 Nov 2007 - 23:20)