Yeti: Größe der Webseite in KB herausfinden

Hallo Halli!

Ich möchte zu statistischen Zwecken die Größe meiner (dynamisch generierten, X-Powered-By: PHP 4.3.1) Webseiten herausfinden und noch auf selbiger ausgeben.
Also nach dem Motto:
[...]
   <p>
      Diese Seite wurde in 0,2567829387532375478456 Sekunden erstellt, enthielt 125 Datenbankabfragen und ist 678 KB groß.
   </p>
   </body>
</html>

Weiß jemand, wie ich das erreichen kann? Egal welche Sprache.
Bisher fiel mir nur ein, die gesamte Seite per output buffering PHP zunächst zu generieren, dann die Seitengröße herauszufinden, sie anzuhängen und den buffer an den Browser zu senden.
Leider stürzt der dumme IE wahllos auf irgendwelchen Seiten ab, wenn ob angeschaltet ist und das kann ich mir nicht leisten, also muss eine andere Lösung her.

Wer weiß, wie's geht?

Danke im Voraus,
der Yeti

--
Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
Und bin so klug als wie zuvor!
sh:( fo:| ch:? rl:? br:  n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
http://community.de.selfhtml.org/fanprojekte/selfcode.htm
  1. Hallo Yeti!

    [Grösse einer mit PHP generierten HTML-Seite ermitteln]

    Dies ist wahrscheinlich nicht die eleganteste Lösung:

    Gebe den Inhalt nicht direkt mittels "echo", "print()", etc. aus, sondern Speichere Sie in eine Variable. Zähle deren Zeichen -- also die Bytes. Füge die Grösse der Variable hinzu. Anschliessend kannst du sie mit "echo", "print()", etc. ausgeben.

    Der Wert wird allerdings nicht ganz stimmen, da erst gezählt wird und anschlißend der String noch um ein paar Byte -- die Angabe der Grösse -- erweitert wird.

    Grüsse,

    Sky

    1. Hallo Sky!

      Gebe den Inhalt nicht direkt mittels "echo", "print()", etc. aus, sondern Speichere Sie in eine Variable. Zähle deren Zeichen -- also die Bytes. Füge die Grösse der Variable hinzu. Anschliessend kannst du sie mit "echo", "print()", etc. ausgeben.

      Das Problem ist, dass auf jeder Seite mindestens drei Include-Dateien eingebunden werden und auch dort selber teilweise hunderte echo-Befehle stehen. Nur für so eine mickrige Zahl mache ich mir nicht den ganzen Aufwand und schreibe jedes einzelne echo-Statement um. ;-)

      Der Wert wird allerdings nicht ganz stimmen, da erst gezählt wird und anschlißend der String noch um ein paar Byte -- die Angabe der Grösse -- erweitert wird.

      Das ist mir ja egal, das weiß ich doch. Allerdings weiß ich auch ungefähr, wie lange mein String ist, den ich dann anhänge. Aber das nehme ich gerne in Kauf.

      Der Yeti

      --
      Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
      Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
      Und bin so klug als wie zuvor!
      sh:( fo:| ch:? rl:? br:  n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
      http://community.de.selfhtml.org/fanprojekte/selfcode.htm
  2. Hallo!

    <p>
          Diese Seite wurde in 0,2567829387532375478456 Sekunden erstellt, enthielt 125 Datenbankabfragen und ist 678 KB groß.
       </p>
       </body>
    </html>
    Weiß jemand, wie ich das erreichen kann? Egal welche Sprache.
    Bisher fiel mir nur ein, die gesamte Seite per output buffering PHP zunächst zu generieren, dann die Seitengröße herauszufinden, sie anzuhängen und den buffer an den Browser zu senden.
    Leider stürzt der dumme IE wahllos auf irgendwelchen Seiten ab, wenn ob angeschaltet ist und das kann ich mir nicht leisten, also muss eine andere Lösung her.
    Wer weiß, wie's geht?

    Davon abgesehen das eine Generierungszeitangabe mit ca. 20 Stellen hinter dem Komma keinen Sinn macht, genau so wie du es geschrieben hast mit ob_start(), Seite generieren, ob_get_contents() und ob_end_clean().
    Und in der Seite etwas in der Art:
        <p>
           Diese Seite wurde in {zeit} Sekunden erstellt, enthielt {queries} Datenbankabfragen und ist {size} KB groß.
        </p>
    wobei das dann per str_replace mit den entsprechenden Werten bestückt wird, bevor die ganze Seite per echo geschrieben wird!

    Und der dumme IE ist bei noch nie bei Seiten mit ob abgestürzt! Da musst du irgendwas verkehrt machen!

    Ciao,
    Andy

    1. Hallo Andy!

      Davon abgesehen das eine Generierungszeitangabe mit ca. 20 Stellen hinter dem Komma keinen Sinn macht,

      Jaaaa, ich hab doch einfach nur auf den Ziffernblock gehauen. Im Skript runde ich auch auf 4 Stellen.

      Und der dumme IE ist bei noch nie bei Seiten mit ob abgestürzt! Da musst du irgendwas verkehrt machen!

      Deinen Tipp habe ich mir eben genauso auch überlegt. Aber ich hatte das Problem schon, als ich die Seiten gzip't an den Brauser schicken wollte (weil sie eben u.U. in den Megabyte-Bereich hineinragen), da habe ich das Absturz-Problem eingegrenzt und es auf das ob zurückgeführt. Seit das aus ist, ist der IE noch kein einziges Mal abgestürzt.
      "Damals" hatte ich eine Kompressionsstatistik erstellt und in eine Logdatei geschrieben. Konnte ich leider nicht anhängen, weil ich ja den output schließlich schon gzip't hatte. Stell ich mir aber nicht so schwierig vor bei reinem HTML.

      Das Ding ist, wenn er abstürzt und ich die Fehlermeldung abschicke, gibt Microsoft mir einen Link zu einem Patch. Leider darf ich hier nichts installieren und Windows Updates oder Patches werden nur eingespielt, nachdem sie von der EDV-Hauptabteilung auf Herz und Nieren geprüft wurden ob sie auch ja keine existierenden Anwendungen negativ beeinflussen.
      Deswegen hängen wir hier ja auch immer noch mit dem IE 5.00 rum...

      Nur für so eine kleine Spielerei werde ich da nicht die Pferde scheu machen, zumal das ja auch Geld kostet, was uns hier dann in Rechnung gestellt wird. Die testen das bestimmt erstmal 2 Monate durch, wenn sie überhaupt so viel Zeit haben.

      Der Yeti

      --
      Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
      Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
      Und bin so klug als wie zuvor!
      sh:( fo:| ch:? rl:? br:  n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
      http://community.de.selfhtml.org/fanprojekte/selfcode.htm
  3. Hi,

    Ich möchte zu statistischen Zwecken die Größe meiner (dynamisch generierten, X-Powered-By: PHP 4.3.1) Webseiten herausfinden und noch auf selbiger ausgeben.

    Häh? Was nützen für eine Statistik Daten, die nicht zentral gespeichert werden, sondern an wer weiß wie viele Clients verteilt wurden und nichtmal dort dauerhaft gespeichert werden?

    Die Anzahl der übertragenen Bytes finden sich üblicherweise im access.log des Webservers ...

    Die meisten Besucher dürfte es eh nicht interessieren, und wenn doch, gibt der Browser darüber Auskunft (Rechtsklick - Page Info im Mozilla bzw. Rechtsklick - Properties im IE oder View - Panels - Info im Opera usw.).

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.