Ente1978: Daten aus einer HTML auslesen und in eigener darstellen

Hallo Zusammen,

ich bin ziemlich unerfahren, was das erstellen einer eigenen HP angeht. Ich habe folgendes Problem:

Ich habe eine Datei, die sich Index.html nennt. Es handelt sich dabei um eine "Statistikdatei" meines Providers mit den Zugriffen auf meiner Seite. Ich wollte nun einen bestimmten Wert aus dieser Datei auslesen und bei mir auf meiner HP darstellen.

Hier ein Auszug aus der Index.html:

<TR><TH HEIGHT=4></TH></TR>
<TR><TD BGCOLOR="#C0C0C0" COLSPAN=6 ALIGN=left><FONT SIZE="-1"><B>Totals</B></FONT></TD>
<TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>297001</B></FONT></TD>
<TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">0</FONT></TH>
<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">0</FONT></TH>
<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>240</B></FONT></TD>
<TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>2752</B></FONT></TD>
<TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>8154</B></FONT></TD>
<TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>17525</B></FONT></TD></TR>
<TR><TH HEIGHT=4></TH></TR>

Ich möchte gerne die 240 auslesen und auf meiner HP darstellen:

<p>    ?????   </p>

Könnt Ihr mir helfen?

Vielen Dank vorab
Ente1978

  1. Ich möchte gerne die 240 auslesen und auf meiner HP darstellen:

    <p>    ?????   </p>

    <p>240</p> ???

    1. »»
      »» Ich möchte gerne die 240 auslesen und auf meiner HP darstellen:
      »»
      »» <p>    ?????   </p>
      »»

      <p>240</p> ???

      naja...das wäre etwas einfach. Mir geht es darum, dass ich die Zahl nicht kenne. Es sind die Visits der HP. Diese steigt also ständig und ich möchte somit einfach nur die Zahl der Zugriffe auf die HP darstellen.

      1. naja...das wäre etwas einfach. Mir geht es darum, dass ich die Zahl nicht kenne. Es sind die Visits der HP. Diese steigt also ständig und ich möchte somit einfach nur die Zahl der Zugriffe auf die HP darstellen.

        Wie soll man etwas auslesen, was man nicht kennt? Wie ist denn der entsprechende Platzhalter definiert?

        1. »» naja...das wäre etwas einfach. Mir geht es darum, dass ich die Zahl nicht kenne. Es sind die Visits der HP. Diese steigt also ständig und ich möchte somit einfach nur die Zahl der Zugriffe auf die HP darstellen.

          Wie soll man etwas auslesen, was man nicht kennt? Wie ist denn der entsprechende Platzhalter definiert?

          Sorry, wie geschrieben. Ich bin totaler Neuling. Im I-Net hatte ich ähnliche Anfragen gesehen. Da wird aber von PHP Dateien geschrieben.

          Ich dachte, dass man nach einer bestimmten zeichenfolge suchen kann und dann einen bestimmten wert an einer bestimmen stelle zurück bekommt.

          Einfach gesagt wie beim Excel mit SVERWEIS.

          1. Ich dachte, dass man nach einer bestimmten zeichenfolge suchen kann und dann einen bestimmten wert an einer bestimmen stelle zurück bekommt.

            eben diese bestimmt Zeichenfolge sollte man natürlich kennen. Einfacher wäre es wohl, die LOG-Files auszulesen, aus diesen speist sich auch deine Statistik.

            1. »» Ich dachte, dass man nach einer bestimmten zeichenfolge suchen kann und dann einen bestimmten wert an einer bestimmen stelle zurück bekommt.
              »»

              eben diese bestimmt Zeichenfolge sollte man natürlich kennen. Einfacher wäre es wohl, die LOG-Files auszulesen, aus diesen speist sich auch deine Statistik.

              ok - aber die log dateien liegen beim provider und da komme ich nicht ran. der provider stellt mir nur eine fertige html seite zur verfügung, in der die werte stehen. ich wollte halt nur diesen einen wert abfragen.

              ich hatte im i-net folgendes gefunden (damit komme ich aber nicht wirklich klar):

              <?php
                 $text = '<TR><TD BGCOLOR="#C0C0C0" COLSPAN=6 ALIGN=left><FONT SIZE="-1"><B>Totals</B></FONT></TD>
              <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>297001</B></FONT></TD>
              <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">0</FONT></TH>
              <TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">0</FONT></TH>
              <TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>240</B></FONT></TD>
              <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>2752</B></FONT></TD>
              <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>8154</B></FONT></TD>
              <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>17525</B></FONT></TD></TR>
              <TR><TH HEIGHT=4></TH></TR>';

              $text = trim(strip_tags($text));

              $text = explode("\n", $text);

              foreach($text as $wert)
                 {
                    $ausgabe[] = trim($wert);
                 }

              foreach($ausgabe as $key=>$wert)
                 {
                    echo $key.": ".$wert."<br />";
                 }

              ?>

              1. ich hatte im i-net folgendes gefunden (damit komme ich aber nicht wirklich klar):

                $text = trim(strip_tags($text));

                Entferne alle Tags (damit bleiben dir die Inhalte der HTML-Elemente und die Umbrüche).

                $text = explode("\n", $text);

                Erzeuge ein Array aus dem Text, nach jedem \n (Zeilenumbruch/Newline) entsteht ein neuer eintrag).

                foreach($text as $wert)
                   {
                      $ausgabe[] = trim($wert);
                   }

                Gehe das komplette Array einträgeweise durch und schreibe es getrimmt (befreit um Leerzeichen) in ein neues Array mit dem Namen $ausgabe (imho ein sinnloser und ressourcenraubender Schritt).

                foreach($ausgabe as $key=>$wert)
                   {
                      echo $key.": ".$wert."<br />";
                   }

                Gib das Array zeilenweise aus key/wert gefolgt von einem <br />.

                Wenn du dir die beiden foreach-Schleifen sparst und gleich den richtigen Wert rausnimmst, sollte das reichen.

                Ausgabe von Zeile 5 (Key 4 im Array, da bei 0 zu zählen begonnen wird):

                  
                echo trim($text[4]);
                
  2. <TR><TH HEIGHT=4></TH></TR>
    <TR><TD BGCOLOR="#C0C0C0" COLSPAN=6 ALIGN=left><FONT SIZE="-1"><B>Totals</B></FONT></TD>
    <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>297001</B></FONT></TD>
    <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">0</FONT></TH>
    <TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">0</FONT></TH>
    <TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>240</B></FONT></TD>
    <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>2752</B></FONT></TD>
    <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>8154</B></FONT></TD>
    <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>17525</B></FONT></TD></TR>
    <TR><TH HEIGHT=4></TH></TR>

    Ich möchte gerne die 240 auslesen und auf meiner HP darstellen:

    Eine RE kommt da dran.
    Das Problem ist, dass du einen verlässlicheren Startanker brauchst.

    Ohne weitere Info:
    /<TR><TH .*?<TR><TD .*?<TD .*?<TD .*?<TH .*?<TH .*?<B>(\d+)</B>/

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. ja, Regex wäre eine Möglichkeit, allerdings ist der von ihr gezeigte HTML-Code nur ein Auszug, wer weiss, was da noch alles auf dieses Muster passen würde. Alles in allem eine unschöne Sache.

  3. Mahlzeit Ente1978,

    <TR><TH HEIGHT=4></TH></TR>
    <TR><TD BGCOLOR="#C0C0C0" COLSPAN=6 ALIGN=left><FONT SIZE="-1"><B>Totals</B></FONT></TD>
    <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>297001</B></FONT></TD>
    <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">0</FONT></TH>
    <TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">0</FONT></TH>
    <TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>240</B></FONT></TD>
    <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>2752</B></FONT></TD>
    <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>8154</B></FONT></TD>
    <TD BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1"><B>17525</B></FONT></TD></TR>
    <TR><TH HEIGHT=4></TH></TR>

    Ich möchte gerne die 240 auslesen und auf meiner HP darstellen:

    1. Wo genau liegt diese Datei mit den Statistikdaten? Innerhalb Deines Webspace?

    2. Ohne eine beliebige serverseitige Skriptsprache (wie z.B. PHP, Perl, Python, ASP o.ä.) wirst Du nicht weiterkommen. Steht Dir so etwas zur Verfügung?

    3. Versuche, eine Struktur im o.a. HTMl-Code zu erkennen: wo genau - abstrakt beschrieben - befindet sich die Zahl, die Du haben willst? (Beispiel: "Der Inhalt der soundsovielten Tabellenzelle in der soundsovielten Tabellenzeile der soundsovielten Tabelle innerhalb eines bestimmten Abschnitts ...") Handelt es sich IMMER(!) um die gleiche Stelle?

    4. "Übersetze" diese abstrakte Beschreibung in den jeweils passenden Programmcode ... fertig!

    Könnt Ihr mir helfen?

    "Hilf Dir SELF, dann hilft Dir das Forum!" :-)

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|