Ankündigung

Einklappen
Keine Ankündigung bisher.

Quelltext auslesen mit file_get_contents

Einklappen

Neue Werbung 2019

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

  • Quelltext auslesen mit file_get_contents

    Hey, ich habe folgendes Problem:

    ich möchte den Inhalt einer Tabelle über den Quelltext auslesen ( mit file_get_contents() ). Dabei zeigt die tabelle aber immer nur 10 Zeilen an. wenn man auf weiter klickt, kommen die nächsten 10. Der Pfad verendert sich ca. so :

    "http://www.example.com/...&row=0" zu "http://www.example.com/...&row=10"

    Wenn ich den Pfad mit row=0 angebe, klappt das auslesen wunderbar. Gebe ich jedoch den Pfad mit row=10 an, bekomme ich das gleiche resultut wie bei row=0, obwohl die Tabelle ja eigentlich die nächsten 10 Zeilen darstellen müsste.

    Kann das irgendwie daran liegen, dass die Variable "row" nicht richtig übergeben wird oder so ?

    So versuch ich das auszulesen:

    PHP-Code:
    $temp "http://www.example.com/...&row=10";
        
    $text file_get_contents($temp,'r'); 
    Vielen Dank schonmal


  • #2
    hm .. du musst dir die Variable aus der URL holen

    $row=intval($_POST['row']);

    außerdem kannst du dann nicht mehr so einfach mit file_get_contents arbeiten ..

    PHP-Code:

    $lines 
    file($fname);
    for (
    $i=$row;$i<$row+10;$i++) {
         echo 
    $lines[$i]."<br>";

    anschließend schiebst du die geänderte $row (+10) wieder in die URL zum nächsten Schritt
    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

    Kommentar


    • #3
      Ich würde den Quelltext mittels [MAN]file[/MAN] in ein Array lesen und die Tabelleneinträge dann über das Array navigieren.

      Kann aber auch sein das ich dein Anliegen und Problem nicht so richtig verstanden habe.

      Mittels file_get_contents kann das schon Problematsicher werden durch zu navigieren weil der gesamte Inhalt als String ausgegeben wird, wenn ich mich nicht ganz irre.

      Gruß Litter
      Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
      http://www.lit-web.de

      Kommentar


      • #4
        Hast du bei der Website schon einmal geschaut, ob du die Anzahl der Einträge pro Seite erhöhen kannst? Auch, wenn dort dann nur 50 als Maximum steht, kann man häufig auch noch höhere Werte in die URL einsetzen. Dann könntest du dort 1000 einsetzen und hättest dann gleich alle Tabelleneinträge.
        mysql ist veraltet Mails senden: Ohne Probleme und ohne mail()
        PHP-Code:
        echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>'

        Kommentar


        • #5
          Hey Danke für die Antworten!

          Ich kann bei der Website leider die Anzahl der angezeigten Zeile nicht erhöhen. Hab schon alle sprobiert.

          eagle275 kannst Du mir vll noch genauer erklären, wie ichdie Variable aus der URL hole ?

          Also wenn ich
          PHP-Code:
          $row=intval($_POST['row']); 
          benutze, dann bekomm ich erstmal den Wert 0. Ich seh auch nicht ganz die verbindung zu der URL. Also ich gebe die da ja nirgens an. Also blöd gesagt: Woher weiß die Funktion, woher sie die Variable holen soll ?

          Und wieso muss ich die Variable herrausholen ? Muss ich sie nicht viel mehr "herreinbringen" Also ich meine irgnedwie erzwingen, dass er die nächsten 10 Zeilen ausliest ??

          Kling vll ein wenig dumm, aber ich versteh das nicht ganz. blutiger Anfänger halt

          Danke

          Kommentar


          • #6
            Zitat von eagle275 Beitrag anzeigen
            hm .. du musst dir die Variable aus der URL holen

            $row=intval($_POST['row']);

            außerdem kannst du dann nicht mehr so einfach mit file_get_contents arbeiten ..

            PHP-Code:

            $lines 
            file($fname);
            for (
            $i=$row;$i<$row+10;$i++) {
                 echo 
            $lines[$i]."<br>";

            anschließend schiebst du die geänderte $row (+10) wieder in die URL zum nächsten Schritt

            Ich glaube da liegt ein gründliches Missverständnis vor. Es geht doch um das Auslesen einer fremden Webseite oder nicht?

            @Ralph: Und du bist ganz sicher dass exakt die URL die du mit file_get_contents öffnest das liefert was du auch erwartest? Vorschlag zum Debuggen:
            PHP-Code:
            echo "<a href=\"$temp\">test url</a>"
            @fschmengler - @fschmengler - @schmengler
            PHP Blog - Magento Entwicklung - CSS Ribbon Generator

            Kommentar


            • #7
              Bitte nutze für Beispiele dafür vorgesehene Domains wie example.com/.net/.org - und nicht die Domain der Stiftung Warentest.

              Zitat von Ralph777 Beitrag anzeigen
              Kann das irgendwie daran liegen, dass die Variable "row" nicht richtig übergeben wird oder so ?
              Theoretisch sollte das korrekt sein.

              PHP-Code:
              $text file_get_contents($temp,'r'); 
              Dieser zweite Parameter ist ziemlich unsinnig. Bitte lies im Manual nach, anstatt auf gut Glück irgendwas anzugeben.

              Kommentar


              • #8
                @fab: also wenn ich nen Link mache, so wie Du es beschreiben hast, komme ich zur richtigen Seite. D.h. ich sehe dann die nächsten 10 Zeilen.

                @ChrisB: ich habe "r" genommen, da ich das ja auslesen möchte. Hat ja soweit auch immer geklappt. Ist das denn wirklich die Ursache für mein Problem ?

                Mir ist gerade noch eingefallen, dass es vll daran liegt, dass die Seite Javascript benutzt (damit kenn ich mich garnicht aus).
                Also in der URL steht http://www.php.de/php-einsteiger/www...jsp?....row=10

                Kommentar


                • #9
                  Erst mal passt du jetzt bitte deine bisherigen Postings an, in Bezug auf das, was ich dir im ersten Satz meiner vorherigen Antwort schrieb!

                  Zitat von Ralph777 Beitrag anzeigen
                  @ChrisB: ich habe "r" genommen, da ich das ja auslesen möchte. Hat ja soweit auch immer geklappt. Ist das denn wirklich die Ursache für mein Problem ?
                  Vermutlich nein, aber Unsinn ist und bleibt es.
                  Ich sagte dir, du sollst im Manual nachlesen - mach das bitte, und erkläre uns anschließend, wie du ausgerechnet auf 'r' kommst.

                  Kommentar


                  • #10
                    @Javascript: Das kann es sein. Rufe die Seite mal mit deaktiviertem JavaScript auf, dann siehst du was file_get_contents bekommt. Damit wird ja nur der zurückgegebene HTML-Quelltext ausgelesen und kein JavaScript ausgeführt.
                    @fschmengler - @fschmengler - @schmengler
                    PHP Blog - Magento Entwicklung - CSS Ribbon Generator

                    Kommentar


                    • #11
                      Also ob es jetzt test.de oder example.de (ist übrings ne Seite von nem Künstler) ist, ist doch irgendwie egal. Naja habs geändert und darum gehts ja jetzt nicht.

                      Wenn ich Javascript deaktiviere, kann ich wieterhin auf der Original-Seite mich durchklicken und auch die 10-20 Zeile sehen.
                      Jetzt weiß ich echt nicht weiter....

                      Noch ne Idee ?

                      Kommentar


                      • #12
                        Da steht auch example.com

                        Also ob es jetzt test.de oder example.de (ist übrings ne Seite von nem Künstler) ist, ist doch irgendwie egal. Naja habs geändert und darum gehts ja jetzt nicht.
                        Falsch.

                        http://www.php.de/board-support/6701...zum-board.html
                        Hinweis: Die IANA sieht für Beispiel-URLs reservierte Domainnamen vor, die Du hier im Board benutzen solltest (example.com, example.net, example.org, .invalid, .test und .example). Ansonsten kann das schnell zu eigenartigen Threads führen (test.de ist bspw. die URL der Stifung Warentest, domain.de die eines Webhosters. Bitte hilf mit, solche Seiten hier nicht versehentlich zu verlinken.
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          [OT] Die de-Domain hat da auch nichts zu suchen. Die für Beispiele reservierten Domains heißen example.com, example.net und example.org, weiterhin kannst du die TLD example verwenden: test.example etc. [/OT]

                          sorry, da fällt mir gerade auch nichts mehr ein
                          @fschmengler - @fschmengler - @schmengler
                          PHP Blog - Magento Entwicklung - CSS Ribbon Generator

                          Kommentar


                          • #14
                            Zitat von Ralph777 Beitrag anzeigen
                            Also ob es jetzt test.de oder example.de (ist übrings ne Seite von nem Künstler) ist, ist doch irgendwie egal.
                            Stimmt, das kommt auf's gleiche raus - weil das auch immer noch eine reale Domain ist, die jemand anderem gehört.

                            Ich schrieb extra, dass example.com/.net/.org für Beispiele vorgesehen sind.
                            Also, noch mal ändern bitte.

                            (Sinn des ganzen: Du möchtest vermutlich auch nicht, dass deine Domain von anderen Leuten als Beispieldomain missbraucht wird. Wenn die irgendwo vollkommen out-of-context verlinkt wird - dann findest du zahlreiche 404-Einträge in deinen Logs, von den Nutzern und Bots, die diesen Links folgen; die Suchmaschinen wundern sich auch über Verlinkungen in „komischer Umgebung“ und lassen das ggf. negativ ins Ranking einfließen, etc.
                            Also sollte es logisch sein, dass man das mit den Domains anderer Leute auch nicht macht.)

                            Noch ne Idee ?
                            Vielleicht nennst du uns mal die Seite, um die es eigentlich geht.
                            Dann können wir uns das auch mal anschauen und selber ausprobieren.

                            Kommentar


                            • #15
                              Okay, bin noch Forum unerfahren Habs wieder geändert!

                              Die Seite ist "http://www.basketball-bund.net/index.jsp?Action=101&liga_id=6998&viewid=&startrow =10" also jetzt schon ab der 10ten Zeile. Ich möchte da die Spieletermine von SG Mannheim II auslesen.

                              Vll könnt ihr mir noch helfen.

                              Danke

                              Kommentar

                              Lädt...
                              X