Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 09/02/2011, 01h32   #1
Invité de passage
 
Inscription : janvier 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 12
Points : 0
Points : 0
Par défaut Récupérer des donnés provenant d'une page web

Salut

Voilà je cherche à récupérer des données d'un tableau d'une page web.
Celle-ci: http://www.vola-racing.com/circuitpro/default/

Par exemple connaissant le numéro de kart, je souhaiterais récupérer les informations le concernant.

J'ai essayé ce code mais il ne fonctionne pas. Peut être cela vient de la page web qui affiche du javascript?

Code :
1
2
3
4
5
6
7
8
9
<?php
$fichier = 'http://www.vola-racing.com/circuitpro/default';
 
$texte = file_get_contents($fichier);
 
preg_match('#<td id="c8_1" class="rk">(?<rank>[^<]+)</td><td id="c8_2" class="nu">11</td>#i', $texte, $rang);
 
echo $rang['rank'];
?>
Quelqu'un aurait une solution à me proposer?

Merci
Vroom06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 08h38   #2
Membre expérimenté
 
Inscription : mai 2006
Messages : 501
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2006
Messages : 501
Points : 576
Points : 576
Bonjour,

C'est effectivement à cause du javascript... file_get_contents va te retourner le code source de la page, et non le code html qui permet de voir la page telle qu'elle est...
La page étant générée en javascript, il faudrait que tu interprètes le code javascript pour récupérer les données... Mais bon, là c'est pas trivial.
C'est peut-être un (bon ?) moyen de protéger ces données contre du parsing automatique et non désiré...
Fabllot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 10h57   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Tu n'as qu'a réccupérer ce que le javascript du site cible demande au serveur.
Regarde dans la console de firebug quand tu visite le site, il y a des requêtes ajax qui partent:
Code :
http://www.vola-racing.com/circuitpro/default/text.php?file=data7_1.txt&0.15811033481041903
renvoie:
Code :
<table><thead><th>Start</th><th>6</th><th>5</th><th>13</th><th>8</th><th>3</th><th>16</th><th>9</th><th>12</th><th>24</th><th>52</th><th>64</th><th>66</th><th>57</th><th>51</th><th>63</th><th>55</th><th>58</th><th>68</th></thead><tr><td>Lap 1</td><td class="tp">6</td><td class="tg">13</td><td class="tp">3</td><td class="tg">8</td><td class="tg">12</td><td class="tg">5</td><td class="tg">16</td><td class="tg">9</td><td class="tg">24</td><td class="tp">52</td><td class="tp">51</td><td class="tg">66</td><td class="tg">58</td><td class="tg">64</td><td class="tg">55</td><td class="tg">57</td><td class="tg">63</td><td class="tg">68</td></tr><tr><td>Lap 2</td><td class="tp">6</td><td class="tp">12</td><td class="tg">13</td><td class="tg">3</td><td class="tg">8</td><td class="tg">5</td><td class="tg">16</td><td class="tg">9</td><td class="tg">24</td><td class="tp">52</td><td class="tp">51</td><td class="tg">66</td><td class="tg">58</td><td class="tg">64</td><td class="tg">55</td><td class="tg">57</td><td class="tg">63</td><td class="tg">68</td></tr><tr><td>Lap 3</td><td class="tp">12</td><td class="tg">6</td><td class="tg">13</td><td class="tg">3</td><td class="tg">8</td><td class="tg">16</td><td class="tg">5</td><td class="tg">9</td><td class="tg">24</td><td class="tp">51</td><td class="tg">52</td><td class="tg">66</td><td class="tg">58</td><td class="tg">64</td><td class="tg">55</td><td class="tg">57</td><td class="tg">63</td><td class="tg">68</td></tr><tr><td>Lap 4</td><td class="tp">12</td><td class="tg">13</td><td class="tg">3</td><td class="tg">8</td><td class="ty">16</td><td class="ty">6</td><td class="tg">5</td><td class="tg">9</td><td class="tg">24</td><td class="tg">51</td><td class="tg">52</td><td class="tg">66</td><td class="tg">58</td><td class="tg">64</td><td class="tg">55</td><td class="tg">57</td><td class="tg">63</td><td class="tg">68</td></tr><tr><td>Lap 5</td><td class="tp">12</td><td class="ty">13</td><td class="tg">3</td><td class="ty">8</td><td class="ty">16</td><td class="tg">6</td><td class="ty">5</td><td class="ty">9</td><td class="ty">24</td><td class="ty">51</td><td class="tg">52</td><td class="ty">66</td><td class="ty">58</td><td class="ty">64</td><td class="tg">55</td><td class="tg">57</td><td class="tg">63</td><td class="tg">68</td></tr><tr><td>Lap 6</td><td class="ty">12</td><td class="tg">3</td><td class="tg">13</td><td class="tg">8</td><td class="tg">16</td><td class="tg">6</td><td class="tg">5</td><td class="tg">9</td><td class="tg">51</td><td class="ty">52</td><td class="ty">24</td><td class="tg">66</td><td class="ty">58</td><td class="ty">64</td><td class="ty">55</td><td class="ty">57</td><td class="ty">63</td><td class="ty">68</td></tr><tr><td>Lap 7</td><td class="ty">12</td><td class="ty">3</td><td class="tg">13</td><td class="tg">8</td><td class="ty">16</td><td class="ty">6</td><td class="tg">5</td><td class="tg">9</td><td class="tg">51</td><td class="tg">52</td><td class="tg">24</td><td class="ty">66</td><td class="tg">58</td><td class="tg">64</td><td class="tg">55</td><td class="tg">63</td><td class="ty">57</td><td class="ty">68</td></tr><tr><td>Lap 8</td><td class="ty">12</td><td class="ty">3</td><td class="ty">13</td><td class="ty">8</td><td class="tg">16</td><td class="ty">6</td><td class="ty">5</td><td class="ty">9</td><td class="ty">51</td><td class="ty">52</td><td class="ty">66</td><td class="ty">24</td><td class="tg">58</td><td class="ty">64</td><td class="ty">55</td><td class="ty">63</td><td class="tg">57</td><td class="tg">68</td></tr><tr><td>Lap 9</td><td class="ty">12</td><td class="ty">3</td><td class="tg">13</td><td class="ty">8</td><td class="ty">16</td><td class="ty">6</td><td class="ty">5</td><td class="ty">9</td><td class="ty">51</td><td class="tg">52</td><td class="ty">66</td><td class="ty">24</td><td class="ty">58</td><td class="ty">64</td><td class="ty">63</td><td class="ty">55</td><td class="ty">57</td><td class="ty">68</td></tr><tr><td>Lap 10</td><td class="ty">12</td><td class="tg">3</td><td class="ty">13</td><td class="ty">8</td><td class="ty">16</td><td class="ty">51</td><td class="ty">5</td><td class="ty">6</td><td class="ty">9</td><td class="ty">52</td><td class="ty">66</td><td class="ty">24</td><td class="tg">58</td><td class="tg">63</td><td class="ty">64</td><td class="tg">57</td><td class="ty">55</td><td class="ty">68</td></tr></table>
C'est ce genre d'URL que tu dois appeller.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 11h04   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
et utilise DOMDocument pour parser du HTML, les regexp c'est pas du tout fait pour
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 17h35   #5
Invité de passage
 
Inscription : janvier 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 12
Points : 0
Points : 0
@Benjamin Delespierre:
Je n'arrive pas à trouver la bonne requête ajax qui m'intéresse. Je trouve toutes celles qui ne m'intéresse pas. La partie qui m'intéresse c'est l'onglet ranking.


@stealth35:
J'ai essayé d'utiliser du domdocument pour parser mais rien ne s'affiche. Aurais-je fait une erreur?
Code :
1
2
3
4
5
<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("http://www.vola-racing.com/circuitpro/default/index.html");
echo $doc->saveHTML();
?>
Quelqu'un a une idée pour me dépanner?
Vroom06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 17h41   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
c'est un site en flash, donc faut recupere les donnée que t'as dis Benjamin Delespierre et ensuite les parser avec DOMDocument
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 17h50   #7
Invité de passage
 
Inscription : janvier 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 12
Points : 0
Points : 0
Oui j'ai utilisé firebug comme a dit Benjamin Delespierre pour trouver les liens suivant:

http://www.vola-racing.com/circuitpr...le=data1_1.txt
http://www.vola-racing.com/circuitpr...le=data2_1.txt
http://www.vola-racing.com/circuitpr...le=data3_1.txt
http://www.vola-racing.com/circuitpr...le=data4_1.txt
http://www.vola-racing.com/circuitpr...le=data5_1.txt
http://www.vola-racing.com/circuitpr...le=data6_1.txt
http://www.vola-racing.com/circuitpr...le=data7_1.txt

Malheureusement aucun d'eux ne correspondent à la page principale rank. J'ai le résultat des 2 autres onglets ainsi que les codes html des menus. C'est étonnant.
Vroom06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 18h13   #8
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Sur la page rank, j'ai trouvé celle là (y'en a beaucoup qui partent, il va te faloir comprendre leur mécanisme pour réccupérer la bonne à un instant t - regarde dans le javascript du site pour comprendre cette logique).
Code :
http://www.vola-racing.com/circuitpro/default/update.php?dir=circuitpro:default&index=0&0.43127899390962987
donne
Code :
1data<table><thead><th width="7%">Clt</th><th width="7%">N&#176;</th><th width="23%">Driver</th><th width="8%">Nat</th><th width="14%">Dernier tour</th><th width="14%">Ecart</th><th width="14%">Interv.</th><th width="7%">&nbsp;</th></thead><tr class="tr1"><td id="c1_1" class="rk">1</td><td id="c1_2" class="nu">12</td><td id="c1_3" class="">N.Moller Madsen,</td><td><div id="c1_4" class="nat_DK">&nbsp;</div></td><td id="c1_5" class="tg">25.094</td><td id="c1_6" class="tw">11 Tours</td><td id="c1_7" class="tw"></td><td><div id="c1_8" class="gs">&nbsp;</div></td></tr><tr class="tr2"><td id="c2_1" class="rk">2</td><td id="c2_2" class="nu">10</td><td id="c2_3" class="">R.Nadin,</td><td><div id="c2_4" class="nat_L">&nbsp;</div></td><td id="c2_5" class="tg">25.187</td><td id="c2_6" class="tw">+1.000</td><td id="c2_7" class="tw">+1.000</td><td><div id="c2_8" class="gs">&nbsp;</div></td></tr><tr class="tr1"><td id="c3_1" class="rk">3</td><td id="c3_2" class="nu">15</td><td id="c3_3" class="">V.Öberg,</td><td><div id="c3_4" class="nat_S">&nbsp;</div></td><td id="c3_5" class="tg">25.109</td><td id="c3_6" class="tw">+1.344</td><td id="c3_7" class="tw">+0.344</td><td><div id="c3_8" class="gs">&nbsp;</div></td></tr><tr class="tr2"><td id="c4_1" class="rk">4</td><td id="c4_2" class="nu">16</td><td id="c4_3" class="">M.Freck Jørgensen,</td><td><div id="c4_4" class="nat_DK">&nbsp;</div></td><td id="c4_5" class="tg">25.188</td><td id="c4_6" class="tw">+2.391</td><td id="c4_7" class="tw">+1.047</td><td><div id="c4_8" class="gs">&nbsp;</div></td></tr><tr class="tr1"><td id="c5_1" class="rk">5</td><td id="c5_2" class="nu">14</td><td id="c5_3" class="">S.Luka,</td><td><div id="c5_4" class="nat_B">&nbsp;</div></td><td id="c5_5" class="tg">25.422</td><td id="c5_6" class="tw">+3.625</td><td id="c5_7" class="tw">+1.234</td><td><div id="c5_8" class="gs">&nbsp;</div></td></tr><tr class="tr2"><td id="c6_1" class="rk">6</td><td id="c6_2" class="nu">22</td><td id="c6_3" class="">K.Bromseth,</td><td><div id="c6_4" class="nat_N">&nbsp;</div></td><td id="c6_5" class="tg">25.375</td><td id="c6_6" class="tw">+5.000</td><td id="c6_7" class="tw">+1.375</td><td><div id="c6_8" class="gs">&nbsp;</div></td></tr><tr class="tr1"><td id="c7_1" class="rk">7</td><td id="c7_2" class="nu">21</td><td id="c7_3" class="">K.Bouman,</td><td><div id="c7_4" class="nat_NL">&nbsp;</div></td><td id="c7_5" class="tg">25.500</td><td id="c7_6" class="tw">+7.031</td><td id="c7_7" class="tw">+2.031</td><td><div id="c7_8" class="gs">&nbsp;</div></td></tr><tr class="tr2"><td id="c8_1" class="rk">8</td><td id="c8_2" class="nu">11</td><td id="c8_3" class="">C.Nielsen,</td><td><div id="c8_4" class="nat_DK">&nbsp;</div></td><td id="c8_5" class="ty">26.656</td><td id="c8_6" class="tw">+1 Tour</td><td id="c8_7" class="tw">+1 Tour</td><td><div id="c8_8" class=""></div></td></tr><tr class="tr1"><td id="c9_1" class="rk">9</td><td id="c9_2" class="nu">5</td><td id="c9_3" class="">L.Ringbom,</td><td><div id="c9_4" class="nat_FIN">&nbsp;</div></td><td id="c9_5" class="ty">26.954</td><td id="c9_6" class="tw">+1 Tour</td><td id="c9_7" class="tw">+1.563</td><td><div id="c9_8" class=""></div></td></tr><tr class="tr2"><td id="c10_1" class="rk">10</td><td id="c10_2" class="nu">31</td><td id="c10_3" class="">M.Gatting,</td><td><div id="c10_4" class="nat_DK">&nbsp;</div></td><td id="c10_5" class="tg">25.359</td><td id="c10_6" class="tw">+1 Tour</td><td id="c10_7" class="tw">+1.140</td><td><div id="c10_8" class=""></div></td></tr><tr class="tr1"><td id="c11_1" class="rk">11</td><td id="c11_2" class="nu">1</td><td id="c11_3" class="">J.Johansson,</td><td><div id="c11_4" class="nat_S">&nbsp;</div></td><td id="c11_5" class="tg">26.500</td><td id="c11_6" class="tw">+1 Tour</td><td id="c11_7" class="tw">+1.485</td><td><div id="c11_8" class=""></div></td></tr><tr class="tr2"><td id="c12_1" class="rk">12</td><td id="c12_2" class="nu">33</td><td id="c12_3" class="">J.Hansen,</td><td><div id="c12_4" class="nat_DK">&nbsp;</div></td><td id="c12_5" class="tg">24.985</td><td id="c12_6" class="tw">+1 Tour</td><td id="c12_7" class="tw"></td><td><div id="c12_8" class=""></div></td></tr><tr class="tr1"><td id="c13_1" class="rk">13</td><td id="c13_2" class="nu">18</td><td id="c13_3" class="">E.Antonsen,</td><td><div id="c13_4" class="nat_N">&nbsp;</div></td><td id="c13_5" class="tg">26.531</td><td id="c13_6" class="tw">+1 Tour</td><td id="c13_7" class="tw">+0.765</td><td><div id="c13_8" class=""></div></td></tr><tr class="tr2"><td id="c14_1" class="rk">14</td><td id="c14_2" class="nu">32</td><td id="c14_3" class="">K.Gleisner,</td><td><div id="c14_4" class="nat_FIN">&nbsp;</div></td><td id="c14_5" class="tg">24.765</td><td id="c14_6" class="tw">+1 Tour</td><td id="c14_7" class="tw">+0.203</td><td><div id="c14_8" class=""></div></td></tr><tr class="tr1"><td id="c15_1" class="rk">15</td><td id="c15_2" class="nu">24</td><td id="c15_3" class="">G.Chauveau,</td><td><div id="c15_4" class="nat_B">&nbsp;</div></td><td id="c15_5" class="tg">24.812</td><td id="c15_6" class="tw">+1 Tour</td><td id="c15_7" class="tw">+0.250</td><td><div id="c15_8" class=""></div></td></tr><tr class="tr2"><td id="c16_1" class="rk">16</td><td id="c16_2" class="nu">6</td><td id="c16_3" class="">D.Schilling,</td><td><div id="c16_4" class="nat_DK">&nbsp;</div></td><td id="c16_5" class="tg">25.531</td><td id="c16_6" class="tw">+1 Tour</td><td id="c16_7" class="tw">+1.250</td><td><div id="c16_8" class=""></div></td></tr><tr class="tr1"><td id="c17_1" class="rk">17</td><td id="c17_2" class="nu">23</td><td id="c17_3" class="">K.Charles,</td><td><div id="c17_4" class="nat_B">&nbsp;</div></td><td id="c17_5" class="tg">24.375</td><td id="c17_6" class="tw">+1 Tour</td><td id="c17_7" class="tw">+0.563</td><td><div id="c17_8" class=""></div></td></tr><tr class="tr2"><td id="c18_1" class="rk">18</td><td id="c18_2" class="nu">29</td><td id="c18_3" class="">D.Dupont,</td><td><div id="c18_4" class="nat_B">&nbsp;</div></td><td id="c18_5" class="tg">23.953</td><td id="c18_6" class="tw">+1 Tour</td><td id="c18_7" class="tw">+0.937</td><td><div id="c18_8" class=""></div></td></tr><tr class="tr1"><td id="c19_1" class="rk">19</td><td id="c19_2" class="nu">8</td><td id="c19_3" class="">L.Koivuluoma,</td><td><div id="c19_4" class="nat_FIN">&nbsp;</div></td><td id="c19_5" class="tg">24.734</td><td id="c19_6" class="tw">+1 Tour</td><td id="c19_7" class="tw">+0.250</td><td><div id="c19_8" class=""></div></td></tr><tr class="tr2"><td id="c20_1" class="rk">20</td><td id="c20_2" class="nu">30</td><td id="c20_3" class="">F.Fröjd,</td><td><div id="c20_4" class="nat_S">&nbsp;</div></td><td id="c20_5" class="tp">23.625</td><td id="c20_6" class="tw">+1 Tour</td><td id="c20_7" class="tw">+0.563</td><td><div id="c20_8" class=""></div></td></tr><tr class="tr1"><td id="c21_1" class="rk">21</td><td id="c21_2" class="nu">20</td><td id="c21_3" class="">K.Balthazar,</td><td><div id="c21_4" class="nat_B">&nbsp;</div></td><td id="c21_5" class="tg">23.938</td><td id="c21_6" class="tw">+1 Tour</td><td id="c21_7" class="tw">+0.547</td><td><div id="c21_8" class=""></div></td></tr><tr class="tr2"><td id="c22_1" class="rk">22</td><td id="c22_2" class="nu">27</td><td id="c22_3" class="">D.Davies,</td><td><div id="c22_4" class="nat_NL">&nbsp;</div></td><td id="c22_5" class="tg">23.828</td><td id="c22_6" class="tw">+1 Tour</td><td id="c22_7" class="tw">+0.093</td><td><div id="c22_8" class=""></div></td></tr><tr class="tr1"><td id="c23_1" class="rk">23</td><td id="c23_2" class="nu">28</td><td id="c23_3" class="">G.De Ridder,</td><td><div id="c23_4" class="nat_B">&nbsp;</div></td><td id="c23_5" class="tg">24.781</td><td id="c23_6" class="tw">+1 Tour</td><td id="c23_7" class="tw">+2.438</td><td><div id="c23_8" class=""></div></td></tr><tr class="tr2"><td id="c24_1" class="rk">24</td><td id="c24_2" class="nu">3</td><td id="c24_3" class="">J.Wiman,</td><td><div id="c24_4" class="nat_FIN">&nbsp;</div></td><td id="c24_5" class="tg">26.187</td><td id="c24_6" class="tw">+1 Tour</td><td id="c24_7" class="tw">+1.984</td><td><div id="c24_8" class=""></div></td></tr><tr class="tr1"><td id="c25_1" class="rk">25</td><td id="c25_2" class="nu">4</td><td id="c25_3" class="">C.Picariello,</td><td><div id="c25_4" class="nat_B">&nbsp;</div></td><td id="c25_5" class="tg">26.203</td><td id="c25_6" class="tw">+1 Tour</td><td id="c25_7" class="tw"></td><td><div id="c25_8" class=""></div></td></tr><tr class="tr2"><td id="c26_1" class="rk">26</td><td id="c26_2" class="nu">34</td><td id="c26_3" class="">R.Hansson,</td><td><div id="c26_4" class="nat_S">&nbsp;</div></td><td id="c26_5" class="tg">25.625</td><td id="c26_6" class="tw">+1 Tour</td><td id="c26_7" class="tw">+0.016</td><td><div id="c26_8" class=""></div></td></tr><tr class="tr1"><td id="c27_1" class="rk">27</td><td id="c27_2" class="nu">7</td><td id="c27_3" class="">M.Grenhagen,</td><td><div id="c27_4" class="nat_S">&nbsp;</div></td><td id="c27_5" class="tg">27.828</td><td id="c27_6" class="tw">+1 Tour</td><td id="c27_7" class="tw">+3.797</td><td><div id="c27_8" class="gs">&nbsp;</div></td></tr><tr class="tr2"><td id="c28_1" class="rk">28</td><td id="c28_2" class="nu">35</td><td id="c28_3" class="">Y.Grigorenko,</td><td><div id="c28_4" class="nat_RUS">&nbsp;</div></td><td id="c28_5" class="tg">27.328</td><td id="c28_6" class="tw">+1 Tour</td><td id="c28_7" class="tw">+1.890</td><td><div id="c28_8" class="gs">&nbsp;</div></td></tr><tr class="tr1"><td id="c29_1" class="rk">29</td><td id="c29_2" class="nu">2</td><td id="c29_3" class="">M.Zimin,</td><td><div id="c29_4" class="nat_RUS">&nbsp;</div></td><td id="c29_5" class="ty">32.312</td><td id="c29_6" class="tw">+2 Tours</td><td id="c29_7" class="tw">+1 Tour</td><td><div id="c29_8" class=""></div></td></tr><tr class="tr2"><td id="c30_1" class="rk">30</td><td id="c30_2" class="nu">17</td><td id="c30_3" class="">C.Albai,</td><td><div id="c30_4" class="nat_NL">&nbsp;</div></td><td id="c30_5" class="ty">1:01.109</td><td id="c30_6" class="tw">+9 Tours</td><td id="c30_7" class="tw">+7 Tours</td><td><div id="c30_8" class=""></div></td></tr><tr class="tr1"><td id="c31_1" class=""></td><td id="c31_2" class="nu">19</td><td id="c31_3" class="">S.Bailly,</td><td><div id="c31_4" class="nat_B">&nbsp;</div></td><td id="c31_5" class="tw"></td><td id="c31_6" class="tw"></td><td id="c31_7" class="tw"></td><td><div id="c31_8" class=""></div></td></tr><tr class="tr2"><td id="c32_1" class=""></td><td id="c32_2" class="nu">36</td><td id="c32_3" class="">J.Huttunen,</td><td><div id="c32_4" class="nat_FIN">&nbsp;</div></td><td id="c32_5" class="tw"></td><td id="c32_6" class="tw"></td><td id="c32_7" class="tw"></td><td><div id="c32_8" class=""></div></td></tr></table>
ça m'a l'air d'être ton tableau...
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 19h00   #9
Invité de passage
 
Inscription : janvier 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 12
Points : 0
Points : 0
Merci c'est exactement la page que je cherchais!

Par contre il va falloir que je regarde dans le code pour bien le comprendre.

Cette adresse tu l'as trouvé comment , en regardant dans firebug? Parce que moi pas moyen de la voir.
Vroom06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 20h56   #10
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Il faut activer l'onglet console. Toutes les requêtes AJAX passent dessus.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 22h46   #11
Invité de passage
 
Inscription : janvier 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 12
Points : 0
Points : 0
Je sollicite encore votre aide:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$fichier = 'http://www.vola-racing.com/circuitpro/default/update.php?dir=circuitpro:default&index=0';
 
$texte = file_get_contents($fichier);
 
preg_match('#<td id="c(?<rank>[^<]+)_3" class="">J.Johansson,</td>#i', $texte, $rang);
 
echo $rang['rank'], " eme place <br><br>";
 
preg_match('#<td id="c'.$rang['rank'].'_5 class="tg">(?<chrono>[^<]+)</td>#i', $texte, $lastchrono);
 
echo $lastchrono['chrono'], "last chrono";
 
?>
echo $rang['rank'] me retourne la bonne valeur soit 11.

Cependant j'ai un soucis de syntaxe sur le second preg_match.
Code :
preg_match('#<td id="c'.$rang['rank'].'_5 class="tg">(?<chrono>[^<]+)</td>#i', $texte, $lastchrono);
Mon soucis vient de '.$rang['rank'].' alors ma question, quel syntaxe utiliser pour que le preg_match recherche dans mon cas ... c11_5 ...
Vroom06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 22h48   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
je t'ai dis que pour parser du HTML c'était avec DOMDocument

EDIT : bon par contre t'as pas de chance le fichier pas bon

Code :
1
2
3
4
5
$url = 'http://www.vola-racing.com/circuitpro/default/update.php?dir=circuitpro:default&index=0';
$data = utf8_decode(substr(file_get_contents($url), 8, -1));
 
$doc = new DOMDocument();
$doc->loadHTML($data);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 23h02   #13
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
utilise des DOMXPath pour trouver des données dans un DOMDocument

http://php.net/manual/fr/class.domdocument.php
http://www.php.net/manual/fr/class.domxpath.php

Enjoy
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 23h38   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
y'a moyen de faire un truc sympa en plus, en sqlite par exemple pour faire tes requêtes :


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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
$url = 'http://www.vola-racing.com/circuitpro/default/update.php?dir=circuitpro:default&index=0';
$data = utf8_decode(substr(file_get_contents($url), 8, -1));
 
$doc = new DOMDocument();
$doc->loadHTML($data);
 
$xpath = new DOMXPath($doc);
 
try
{
    $dbh = new PDO("sqlite::memory:");
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
    exit($e->getMessage());
}
 
$dbh->query("CREATE TABLE race (clt INTEGER, num INTEGER, driver, nat, lastlap FLOAT, gap FLOAT, interval FLOAT, blank)");
$stmt = $dbh->prepare("INSERT INTO race VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
 
foreach($xpath->query('//tr') as $line)
{
    $values = array();
 
    foreach ($xpath->query('td', $line) as $child)
    {        
        $values[] = $child->nodeValue;
    }
 
    $stmt->execute($values);
}
 
$query = $dbh->query("SELECT `num`, `driver`, `lastlap` FROM `race` ORDER BY `num` LIMIT 10");
$query->setFetchMode(PDO::FETCH_ASSOC);
 
echo '<table>';
 
$row = $query->fetch();
 
echo '<tr><th>', implode('</th><th>', array_keys($row)), '</th></tr>';
 
do 
{
    echo '<tr><td>', implode('</td><td>', $row), '</td></tr>';
}
while($row = $query->fetch());
 
echo '</table>';
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 11h52   #15
Invité de passage
 
Inscription : janvier 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 12
Points : 0
Points : 0
Génial!
Par contre je ne connais pas bien sqlite.

En changeant ta ligne par
Code :
SELECT * FROM race where driver='J.Johansson,'
J'arrive à obtenir toutes les informations de ce pilote. C'est ce que je recherchais.

Cependant, comment faire pour obtenir indépendamment chaque valeur pour les disposer à l'endroit que je souhaite dans une page web?
Vroom06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 13h00   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Vroom06 Voir le message
Génial!
Par contre je ne connais pas bien sqlite.

En changeant ta ligne par
Code :
SELECT * FROM race where driver='J.Johansson,'
J'arrive à obtenir toutes les informations de ce pilote. C'est ce que je recherchais.

Cependant, comment faire pour obtenir indépendamment chaque valeur pour les disposer à l'endroit que je souhaite dans une page web?
ca dépend de la présentation
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 18h42   #17
Invité de passage
 
Inscription : janvier 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 12
Points : 0
Points : 0
Cette page sera destinée à être affichée sur un iphone durant une course de karting de 24h. Le pilote pourra avoir en temps réel sa place, son temps et son eccart par rapport au pilote suivant (en absolu et la différence par rapport à son chrono.

Pour la présentation je souhaiterais obtenir grosso-modo un résultat comme dans l'image ci-jointe.
Donc il me faudrait pouvoir dissocier les résultats à afficher.
Images attachées
Type de fichier : jpg maquette.jpg (27,2 Ko, 3 affichages)
Vroom06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 18h50   #18
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
oki, ca va être facile alors, mais t'a jamais utilise le sql en PHP ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 19h09   #19
Invité de passage
 
Inscription : janvier 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 12
Points : 0
Points : 0
Malheureusement non. J'ai quelques petites connaissances sur les bdd seulement. Ce n'est pas suffisant.

Là j'arrive à afficher un résultat de toutes les informations d'un kart sur une même ligne.
Mais je ne connais pas la fonction qui permet de récupérer une seule valeur dans ce résultat.
Vroom06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 19h26   #20
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Vroom06 Voir le message
Malheureusement non. J'ai quelques petites connaissances sur les bdd seulement. Ce n'est pas suffisant.

Là j'arrive à afficher un résultat de toutes les informations d'un kart sur une même ligne.
Mais je ne connais pas la fonction qui permet de récupérer une seule valeur dans ce résultat.
Code :
1
2
3
4
5
$query  = $dbh->query("SELECT * FROM `race` WHERE `driver`='J.Johansson,' LIMIT 1");
$driver = $query->fetchObject();
 
//par exemple
echo $driver->lastlap;
__________________
http://blog.stealth35.com/
stealth35 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 06h10.


 
 
 
 
Partenaires

Hébergement Web