Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie danych z tabelki html
Forum PHP.pl > Forum > PHP
knypraca
Witam!

Chciałbym uzyskać pomoc przy napisaniu skryptu, który pobierze dane z tabeli html, wrzuci je do bazy mysql, a następnie wyświetli w lekko zmienionej formie.
Skrypt html wygląda następująco:
  1. <table rules="all" bgcolor="#DDEEFF" border="2" cellpadding="=&quot;5&quot;">
  2. <tr align="center" bgcolor="#CCDDEE">
  3. <td><b>Probe number</b></td>
  4. <td><b>Alias</b></td>
  5. <td><b>Measurement time</b></td>
  6. <td><b>Probe type</b></td>
  7. <td><b>Measurement 1</b></td>
  8. <td><b>Measurement 2</b></td>
  9. <td><b>Measurement 3</b></td>
  10. </tr>
  11.  
  12. <tr><td>1</td><td>tlen</td><td>2014-11-02 11:37:35</td><td>PROBE_TYPE_DO</td><td>12.1 mg/L</td><td>98.8 %sat</td><td>6.6 °C</td></tr>
  13.  
  14. <tr><td>2</td><td>Ph</td><td>2014-11-02 11:37:35</td><td>PROBE_TYPE_PH</td><td>7.19 pH</td></tr>
  15.  

W jaki sposób pobrać te dane aby były ładnie poukładane w bazie mysql - w sensie każda kolumna osobno?
Trochę poczytałem i najpierw używam funkcji file_get_contents, natomiast dalej preg_match - niestety to drugie to dla mnie czarna magia.
Czy mógłby mi ktoś z tym pomóc, doradzić? Byłbym wdzięczny smile.gif

Pozdrawiam

Witam ponownie!
Stworzyłem już coś, jednak poprosiłbym o naprowadzenie. Dlaczego :
  1. <?php
  2. $info = file_get_contents("http://30.30.3.70/index.html");
  3. preg_match('|<tr><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td></tr><tr><td>(.*)</td>|Ui',$info,$result);
  4. echo("<br>");
  5. echo("<table align='center' border='1'><tr><td>Nazwa sondy</td><td>Czas poboru danych</td><td>Dane 1</td><td>Dane 2</td></tr>
  6. <tr><td>$result[2]</td><td>$result[3]</td><td>$result[5], ($result[6])</td><td>$result[8]</td></tr>
  7. </table>");

to nie działa, natomiast to:
  1. <?php
  2. $info = file_get_contents("http://30.30.3.70/index.html");
  3. preg_match('|<tr><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td>|Ui',$info,$result);
  4. echo("<br>");
  5. echo("<table align='center' border='1'><tr><td>Nazwa sondy</td><td>Czas poboru danych</td><td>Dane 1</td><td>Dane 2</td></tr>
  6. <tr><td>$result[2]</td><td>$result[3]</td><td>$result[5], ($result[6])</td><td>$result[7]</td></tr>
  7. </table>");

już tak? Gdzie robię błąd?
NickOver
Ponieważ w przykładzie który podałeś dałeś za dużo (.*)?
knypraca
Nie, skrypt chodzi dobrze.
Jakby ktoś miał podobny problem to chodziło o białe znaki. Wystarczyło wstawić \s+
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.