Tabelle aus HTML Datei lesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tabelle aus HTML Datei lesen

    Hallo,
    ich möchte mir eine Tabelle aus einer bestimmten seite ausgeben lassen und mit dieser später auch weiterarbeiten.
    Dafür hole ich mir die Seite mit file_get_contents. Um nur die Tabelle zu bekommen, schneide ich von <table> bis </table> alles aus dem String.

    Das komische ist, wenn ich dies gemacht habe, hat er bei der Ausgabe von $table immer noch die Überschrift
    Gesamtpunkte
    aus Wiki, der freien Wissensdatenbank
    und den head Teil der Html obwohl ich nur den substring für die tabelle an $table gegeben habe.


    Quellcode:

    PHP-Code:
    $string file_get_contents('http://www.fh-brandenburg.de/~kirmse/wiki/index.php/Gesamtpunkte','r');
    //echo $page;
    $posA strpos($string'<table>');
    $posE strpos($string'</table>');
    $table substr($string$posA$posE);

    echo 
    $table
    Mit cUrl ist klappt es auch nicht und
    mit explode wird es auch nicht besser.

    Der Original Link ist hier: http://www.fh-brandenburg.de/~kirmse...p/Gesamtpunkte

    mein PHP ist hier: http://web.projekt2019.de/extern/curl/

    Hat wer von euch evtl. Rat für mich ?

    Kann es eventuell sein, dass es nicht klappt weil es eine WIKI-Seite ist ?!?
    Zuletzt geändert von gazzle; 30.11.2006, 12:58.

  • #2
    Das komische ist, wenn ich dies gemacht habe, hat er bei der Ausgabe von $table immer noch die Überschrift
    Gesamtpunkte
    Also die überschrift konnte ich in deiner ausgabe jetzt nicht finden. gib mal nur $table aus.

    Kommentar


    • #3
      PHP-Code:
      $string file_get_contents('http://www.fh-brandenburg.de/~kirmse/wiki/index.php/Gesamtpunkte','r');
      $mark = ("'<table[^>]*>.*?</table>'si");
      if (
      preg_match ($mark,$string,$hits))
      {
          
      $table $hits[0];
      }
      echo 
      $table
      z.b.

      gruß
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Danke für deine schnelle Antwort.
        Stimtm auf meiner Seite ist keine Überschrift mehr da, hatte da was rumgespielt. Aber unter der Tabelle gehts.

        Ich schaue mir deinen Vorschlag mal an.

        Jo danke es haut hin!

        Achso kannst du den Ausdruck mal näher erklären

        $mark = ("'<table[^>]*>.*?</table>'si");
        Zuletzt geändert von gazzle; 30.11.2006, 13:12.

        Kommentar


        • #5
          PHP-Code:
          $string file_get_contents('');
          $posA strpos($string'<table>');
          $posE strpos($string'</table>');
          $table substr($string$posA$posE $posA); // $posE - $posA statt nur $posE

          echo $table
          Davon abgesehen schau dir mal Kropffs Beispiel an.
          Nieder mit der Camel Case-Konvention

          Kommentar


          • #6
            Ja wie gesagt läuft alles bestens nur habe ich noch ein kleines Problem.
            Ich möchte jetzt die Tabelle trennen in die einzelnen Zeilen.
            Das habe ich mit substr und einer schleife.

            Damit nun beim nächsten substr Aufruf in der Schelife nicht gleich wieder die erste <tr>.....</tr> ausgegeben wird wollte ich es wie folgt machen.

            Ich habe ja dank der strpos $posE die Position des Endes der ersten Zeile (</tr>) und da wollte ich dann substr($string, $posE ) nehmen.
            Was nach meinem Verständnis jetzt den Teilstring ab $posE bis zum Ende des Strings übergibt.

            Dann kann die Schleife wieder durchlaufen und die nächste Zeile der Tabelle auslesen.

            Aber leider gibt er immer wieder die Tabelle komplett aus.

            Ist mein Denkansatz hier falsch ?

            Kommentar


            • #7
              habs nicht ganz nachvollziehen können. aber mit nem preg_match_all kannst du alle zeilen in ein array einlesen und damit machen, was du willst. Das ist doch, was du willst.?

              Kommentar


              • #8
                Wenn du nur die Zeilen willst:
                PHP-Code:
                preg_match_all('/<table[^>]*>.*<tr[^]*>(.*)<\/tr>/isU',$deinString,$treffer);
                echo 
                '<pre>';
                print_r($treffer[1]);
                echo 
                '</pre>'
                Sollte dir alles was zwischen tr und /tr steht matchen und in $treffer[1] ablegen. Ggf musst du dann noch mit einem strip_tags() drüber.

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Ehrlich gesagt, du solltest erstmal nach einem Erlaubnis fragen, bevor du fremde Inhalte als eigene ausgibst. Sonst ist das eine Urheberrechtverletzung... Nur verlinken darf man ohne zu fragen. (Bin keine Fachfrau in diesem Bereich, habe nur einiges gelesen.)
                  www.createpage.net
                  www.immobilien-ohne-makler.de

                  Kommentar

                  Lädt...
                  X