Daten aus Internetseite auslesen

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

  • Daten aus Internetseite auslesen

    Hi,

    Ich möchte aus einer Internetseite bestimmte daten auslesen und in einem Array speichern.

    In der besagten I-NET-Seite ist eine tabelle und ich möchte die erste Spalte in ein Array packen. Wie ist das möglich !

  • #2
    Hallo,

    kannst Du mal ein beispiel von der Seite zeigen und welche Spalte Du möchtest??

    Kommentar


    • #3
      lade die daten der kompletten seite mittels fopen in eine var.

      dann kannst du mitteln REGEX die einzelteile finden und in eine separate var packen.

      was hat es in deiner idee mit dem array auf sich?
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Was hat es mit Regex aufsich ?

        Die IDee mit dem array kam mir weil ich verschiedene Daten ind er tabelle zuweisen muss.

        Also:

        Der erste datensatz in der ersten Zeile der ersten spalte der tabelle die ID 1 kriegen
        der zweite datensatz in der der zweiten Zeile der ersten spalte der tabelle die ID2 ...

        Daher meine Idee mit dem Arry, aber gibt es irgendwo nen Tutorial womit ich mir die Funktion von regex bzw. fopen klarmachen kann.

        Kommentar


        • #5
          klar. du kannst das mit dem array machen. nur musst du die daten erst einmal dahin bekommen.

          dafür ist das regex ganz gut....
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            und wie funktioniert regex ?

            Kommentar


            • #7
              http://www.php-resource.de/tutorials/read/10/1/
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                ?? da bin ich überfragt ?

                Verstehe dort gar nichts.

                PHP-Code:
                <?

                $daten = fopen ("test.php", "r");

                ?>
                So kriege ich die Daten in eine Datei.

                Die Datei sieht ungefähr so aus:

                PHP-Code:
                  <table width=600>
                      <
                th>123:456:789</th>
                      <
                th>Name</th>
                      <
                th>blabla</th>
                    </
                tr>
                    <
                tr>
                      <
                th>123:456:787</th>
                      <
                th>NAme</th>
                      <
                th>blabla</th>
                    </
                tr>
                    <
                tr>
                      <
                th>123:456:788</th>
                      <
                th>NAme</th>
                      <
                th>blabla</th>
                    </
                tr>
                  </
                table
                Das sind die Teile die ich aus der Datei haben will, aber das ist nicht alles.

                Mir kommt es auf die Zahlen an !?!

                Wie kriege ich die jetzt in ein Array ?

                Kommentar


                • #9
                  wenn das jetzt ein teil ist.....

                  Code:
                      <tr>
                        <th>123:456:788</th>
                        <th>NAme</th>
                        <th>blabla</th>
                      </tr>
                  kann man über ne regex die daten finden.
                  so perfekt kenne ich mich auch nciht aus,
                  dass ich dir die optimalste lösung geben kann.

                  nutze aber mal diesen filter.

                  Code:
                  /\<tr\>(.*?)\<th\>(.*?)\</th\><th\>(.*?)\</th\><th\>(.*?)\</th\>(.*?)\</tr\>/is
                  so müsste das dann in aktion aussehen.

                  Code:
                  echo preg_replace("/\<tr\>(.*?)\<th\>(.*?)\</th\><th\>(.*?)\</th\><th\>(.*?)\</th\>(.*?)\</tr\>/is", "", $deinstring);
                  test das mal. theoretisch müssten die zellen jetzt leer sein. bzw. die ganze tabellenzeile existiert nciht mehr.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    wie gesagt, mit regulären ausdrücken :-)

                    damit kannst du einen text darauf untersuchen, ob er einem bestimmten muster entspricht.

                    in deinem fall wäre das muster ja wohl, dass zuerst ein <th> kommen muss, gefolgt von einer dreistelligen zahl (oder können das auch weniger sein?), dann ein doppelpunkt, zahl, :, zahl, und dann ein abschliessendes </th>

                    suchmuster könnte in etwa so aussehen:

                    !<th>[0-9]+:[0-9]+:[0-9]+<\/th>!

                    (schnellschuss ohne garantie. alles weitere -> siehe regex-tutorial)


                    btw: <th> heisst table header, sollte eigentlich nur in der ersten tabellenzelle vorkommen... für die folgenden zellen wären dann <td> zu verwenden.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Original geschrieben von wahsaga
                      !<th>[0-9]+:[0-9]+:[0-9]+<\/th>!
                      wie würdest du denn mehrere zellen auslesen, wenn wir mal davon ausgehen, dass <th> falsch ist und <td> richtig wäre ..

                      er will ein array haben. ich nehme mal an, dass pro tab-zeile <tr> ein array.index erstellt werden soll.

                      habe nämlich dafür auch keine lösung ... noch nciht mal ne idee. ...
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        wie würdest du denn mehrere zellen auslesen, wenn wir mal davon ausgehen, dass <th> falsch ist und <td> richtig wäre ..

                        falls sowhl <th> als auch <td> vorkommen, wär's wohl das einfachste mit zweimal suchen...


                        um den ganzen kram in ein array zu bekommen würde sich wohl preg_grep() anbieten,

                        preg_grep() returns the array consisting of the elements of the input array that match the given pattern .
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          falls sowhl <th> als auch <td> vorkommen, wär's wohl das einfachste mit zweimal suchen...
                          ähm, bullshit.

                          besser wäre natürlich, beide als alternative anzugeben:

                          (?:<th>|<td>){1}?
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            das war mir schon klar ...

                            nur ich meine. wenn du mehrere zeilen mit mehreren spalten hast.

                            Code:
                            <tr><td>zelle 1</td><td>zelle 2</td><td>zelle 3</td><td>zelle 4</td></tr>
                            <tr><td>zelle 1</td><td>zelle 2</td><td>zelle 3</td><td>zelle 4</td></tr>
                            <tr><td>zelle 1</td><td>zelle 2</td><td>zelle 3</td><td>zelle 4</td></tr>
                            <tr><td>zelle 1</td><td>zelle 2</td><td>zelle 3</td><td>zelle 4</td></tr>

                            wenn ich jetzt diese 4 zeilen und je 4 spalten hätte ....
                            wie kann man das in ein array packen. das ist genau das, was murderdeath haben will.
                            zumindest habe ich das so verstanden ...

                            das array müsste dann wohl so aussehen.

                            Code:
                            $array[zeile1][zelle1]
                            $array[zeile1][zelle2]
                            $array[zeile1][zelle3]
                            $array[zeile1][zelle4]
                            $array[zeile2][zelle1]
                            $array[zeile2][zelle2]
                            $array[zeile2][zelle3]
                            $array[zeile2][zelle4]
                            .
                            .
                            .
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              ganau: ich will ein muster 123:456:789 rausfiltern; wobei aber 123 auch nur 1 oder 34 sein kann.

                              Aber wie schreibe ich das dann in ein Array das die Tabelle ja aus mehreren zeile besteht und jede Zeile einzeln in das Array soll.

                              Kommentar

                              Lädt...
                              X