Bonsoir à tous,
j'aurais besoin d'un coup de pouce pour la mise en place d'un système de récupération de valeurs provenant d'un tableau ayant la syntaxe suivante:
J'ai mis des XXX lorsqu'il y a du contenu mais qu'il ne m'intéresse pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <table border=1 style="border-collapse:collapse"> <tr> <td XXX>XXX<br>DIM</td><td XXX>XXX<br>LUN</td><td XXX>XXX<br>MAR</td> (....) </tr> <tr> <td XXX>1/03</td><td XXX>2/03</td><td XXX>3/03</td> (....) </tr> <tr><td colspan="31"> </td></tr> <tr> <td title='' XXX><font XXX><b>RH</b></font></td><td title='Pause de 13 à 14h' XXX><font XXX><b>9-17</b></font></td><td title='Pause de 13 à 14h' XXX><font XXX><b>9-17</b></font></td> (....) </tr> <tr><td colspan="31"> </td></tr> <tr><td colspan="31"> </td></tr> </table>
J'ai gardé la mise en forme au cas ou les retours à la ligne auraient une importance.
Ce qui me pose problème c'est qu'il y a autant de colonne par ligne que de jours dans le mois (il s'agit d'un planning version HTML à l'origine) donc c'est variable.
Donc ma première question est: faut-il mieux utiliser preg_match ou preg_match_all ?
je ne sais pas trop comment m'y prendre :S
j'ai essayé quelque chose pour au moins récupérer les jours
mais un Array ( ) tout vide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $regexp = '`<table border=1 style="border-collapse:collapse">(?:<tr>(<td(.*)>(.*)<br>(.*)</td>)+</tr>)+(.*)</table>`Us' ; preg_match_all($regexp, $parser->page_content, $matches, PREG_SET_ORDER) ; print_r($matches) ;
$parser->page_content contient bien la source html ya pas de soucis là dessus.
quand il s'agit de récupérer une seule information j'y arrive, mais là j'attaque le plus gros et j'avoue me perdre un peu. Je pense que si j'arrive à récupérer la première ligne le reste suivra, mais ce n'est déjà pas le cas donc je suis totalement bloqué.
Si quelqu'un pouvais m'aider à réaliser cette récupération d'information.
Merci par avance.
Cordialement, DD.
Partager