Front-Website herunterladen

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

  • Front-Website herunterladen

    Hallo miteinander,

    ich muss die Größe (in KByte) der ersten Webseite ermitteln. Sprich, wenn man eine Beispielseite "www.beispiel.de" aufruft, muss man halt die Größe aller Daten (html selbst, alle Bilder, CSS und JavaScript-Dateien) zusammen zählen, welche bei diesem Aufruf letzendlich im Internet-Browser angezeigt werden.

    Die HTML-Daten lassen sich ziemlich einfach mit fopen(), fputs() und fgets() herunterladen. Mit anderen Daten habe ich Probleme und zwar:

    ich kann ja zeilenweise die HTML-Datei lesen und ermitteln, ob in einer Zeile z.B. "<img src=" vorkommt und dann den Pfad zu einem Bild extrahieren und dieses Bild dann mit wget herunterladen. Na ja, die Sache ist die, dass leider es vorkommen kann, dass die Zeile umbricht und daher ich nicht wirklich den Pfad zu einem Bild o.ä. ermitteln kann.

    Könnt ihr mir helfen bzw. wisst ihr vielleicht ein Beispiel, wie man das vielleicht anders realisieren kann?

    Vielen Dank für die Hilfe!

    P.S. Suche habe ich benutzt und leider nichts gefunden

  • #2
    Hi,

    wenn es Dir darum geht, anhand der ermittelten Bytesumme
    die Ladezeit der Seite zu schätzen, wirst Du Probleme haben,
    denn alle Dateien können ja auch dynamisch zur Laufzeit
    erstellt sein und damit so schnell oder langsam sein,
    wie der Webserver die scripte parst.

    Sonst kann ich mir nicht vorstellen, für was Du diese Größen
    ermitteln willst, zumal sich diese bei Seiten von dritten
    dauernd ändern.

    Wenn es sich um Deine eigene Seite handelt, kannst Du
    die Summe ja ermitteln mit Funktionen wie opendir() und
    readdir ().
    Hier hilft Dir die Suche sicher!
    Gruss,
    Stefan

    Kommentar


    • #3
      Danke für deine Antwort,

      aber es geht hier nicht um die Ladezeit, sondern tatsächlich um die Größe. Und ich habe leider keinen Shell-Zugang auf den Server, daher muss ich auf jeden Fall über HTTP arbeiten.

      Kommentar


      • #4
        hmmm, die lösung interessiert mich auch ..., ich arbeite an seiten für pocketpcs und bei externen links würde ich in klammern gern die aktuelle größe aller dateien die angezeigt werden, ausgeben. geht sowas?
        | netsnake | www.netsnake.net |
        Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG

        Kommentar


        • #5
          shell Zugang brauchst Du auch nicht. Du kannst dir die Filegrößen
          mit php holen.
          Kann aber schnell umfangreich werden.

          Du musst:
          1. Alle HTML und CSS Files nach verlinkten Dateien (Images etc.)
          durchparsen (viel Spass!)
          2. Die Filegrößen mittels der php Funktion "filesize" etc. ermitteln
          3. Die Dateigrössen summieren (ok, nicht ganz so schwer).

          Du willst ausserdem unbedingt diese Datei
          hier
          runterladen und bei Funktionsreferenz->"Funktionen des Dateisystems" weiterlesen
          Zuletzt geändert von Beyond; 15.01.2007, 18:11.
          Gruss,
          Stefan

          Kommentar


          • #6
            Re: Front-Website herunterladen

            Original geschrieben von wcphp
            Könnt ihr mir helfen bzw. wisst ihr vielleicht ein Beispiel, wie man das vielleicht anders realisieren kann?
            "anders realisieren" - eine einfache nicht-php-lösung hätte ich:

            firefox installieren - WEB Developer extension installieren - dann erhältst du unter Info -> "Dateigröße anzeigen" eine sehr schöne übersicht, aufgeschlüsselt nach dokumenten, grafiken, css, js etc. ...

            Kommentar


            • #7
              Ich glaube, ich habe noch eine Sache nicht erklärt. Es geht darum, dass ich auf einem Server Statistiken sammeln werde und einen PHP-Script schreiben muss, der auf eine ganz andere Webseite (nicht auf dem gleichen Server) zugreifen soll und die Größe der ersten Seite ermitteln muss. Daher kann ich meines Verständnis nach keine "Funktionen des Dateisystems" benutzen.

              Firefox-Lösung passt nicht, weil es eine Statistik-Seite aufgebaut werden muss.

              Unter einer anderen Lösung habe ich eine andere Möglichkeit gemeint, die ich in dem Script verwenden kann, z.B. eine fertige Funktion oder ne Klasse.
              Zuletzt geändert von wcphp; 15.01.2007, 18:40.

              Kommentar


              • #8
                ja, dem ist so (filesize nur lokal).

                Alternativ kannst Du halt

                PHP-Code:
                $file fopen ("http://www.example.com/file.html""r");
                if (!
                $file
                   {
                    echo 
                "<p>Datei konnte nicht geöffnet werden.\n";
                    exit;
                   }
                $size 0;
                $blocksize 256;
                while (!
                feof ($file)) 
                    {
                    
                $line fgets ($file$blocksize);
                    
                $size $size $blocksize;
                   }
                fclose($file); 
                (die Profis werden mich hierfür sicher verbal steinigen)

                Probleme:
                - ist nicht bytegenau, sondern Genauigkeit = $blocksize.
                - dauert sicher ewig bei tausenden, großen Files.

                Dass Problem mit dem Parsen und dass Du so alle Images
                etc. durchlaufen musst, besteht aber immer noch.
                Gruss,
                Stefan

                Kommentar


                • #9
                  die html-datei musst du schon herunterladen (damit auch schon die größe ermitteln).

                  mittels regulärer ausdrücke alle img-, script- und style-tags parsen, um die dateinamen zu erhalten und mittels eines HEAD http-headers deren größe ermitteln. durch die stylesheets gehen und die prozedur für alle hintergrundbilder etc. wiederholen.

                  genau ist es trotzdem nie, weil man mit js etwas nachladen kann.

                  reicht an dieser stelle nicht eine schätzung? html-größe plus ca. 50 kb für die bilder oder was auch immer...

                  Kommentar


                  • #10
                    Liebe Kollegen,

                    danke für eure Antworten. Reguläre Ausdrücke ist wohl der Weg, wobei ich damit nicht so viel zu tun gehabt habe, daher ist hier leider keine schnelle Lösung bei mir in Sicht. Ich habe wirklich gehofft, dass jemand eine fertige Funktion hat.

                    Ungefähr Schätzen darf ich nicht. Dass js etwas nachladen kann, darf ausgelassen werden

                    Kommentar


                    • #11
                      hmm...

                      js kann nur leider TAUSENDE Sachen nachladen...

                      Stell dir z.B. Google Maps vor:

                      Da ist eine Seite im Web, die einen Google-Maps Script drauf hat.
                      Ok, die größe der js-Datei auf dem google server ist nicht groß, aber auch wenn du nicht vor hast, über die ganze welt zu sausen, allein das laden dessen, was automatisch angezeigt wird, kann bei langsamen verbindungen dauern, außerdem ist die Zahl, wie groß die Seite ist, ungenauer als das Schätzen...
                      | netsnake | www.netsnake.net |
                      Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG

                      Kommentar


                      • #12
                        Außerdem ist es doch auch nicht gesagt, dass im Css definierte Dateien, z.B. Hintergrundbilder, auch wirklich auf der Startseite angezeigt werden?
                        ich glaube

                        Kommentar


                        • #13
                          mein vorposter hat natürlich völlig recht.
                          Um Herauszufinden, welche im CSS Stylesheet angegebenen
                          Grafiken auf der Startseite angezeigt werden, müsstest Du
                          die HTML Ausgabe nach allen vorkommenen Styleanweisungen
                          etc. durchparsen "<TD class="test">".

                          Nicht zu vergessen, dass ja mit css auch alle HTML Tags
                          umformatiert werden können.
                          UND nicht zu vergessen verschachtelte Tags:
                          PHP-Code:
                          table {background-imageurl(bild1.jpg);...}
                          td {background-imageurl(bildx.jpg); list-style-imageurl(bildy.jpg);} 
                          table.test a:hover {background-imageurl(bild2.jpg);...} 
                          Ein HTML code von
                          Code:
                          <TABLE ...>
                          <TR>
                          <TD>
                          <SPAN class=test>Hallo</SPAN</TD>
                          </TR>
                          </TABLE>
                          braucht meiner Meinung nach bild1, bild2, bildx und bildy.

                          Viel Spass dabei! Wenn die Seiten auch noch dynamisch erzeugt werden oder idealerweise noch banner, google adds, maps etc.
                          enthalten dann wirds noch lustiger
                          Zuletzt geändert von Beyond; 19.01.2007, 12:43.
                          Gruss,
                          Stefan

                          Kommentar

                          Lädt...
                          X