Frage von emotionsunited, 18

Guten Abend, ich suche eine Möglichkeit um mit PHP oder einem CURL Request die Größe einer Webseite zu ermitteln?

Bsp. Wenn ich aktuell gutefrage.net Aufrufe, kann ich sehen das ca. 468KB Daten transferiert werden. Wichtig: Ich brauche die Größe ALLER zu transferierenden Daten (HTML, Bilder, externe Links, etc.), nicht die Größe des reinen HTMLs.

Jmd. eine Idee?

Danke und viele Grüße

Antwort
von mastema666, 7

Du könntest mit cURL die Fileheader prüfen, dort speziell die "Content-Length".

Das könnte z.B. so aussehen:

function getSize($site) {


$ch = curl_init($site);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$data = curl_exec($ch);
curl_close($ch);

if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
return (int)$matches[1]; // Ergibt die Dateigröße in Bytes
}
}

Also $site würde man dann halt die URL einer Seite (inkl http://...) übergeben.

Das funktioniert natürlich immer nur für die gerade geprüfte Seite / Datei selbst, d.h. um die gesamte Größe einer Webseite zu ermitteln müsstest du die Seite einmal komplett abrufen, parsen und dir alle eingebundenen Dateien (JS, Bilder, CSS etc) dort heraussuchen (und das ggf rekursiv auch bei diesen nochmal genauso) und die wiederum prüfen und dann halt alles zusammenrechnen.

Antwort
von LeonardM, 5

Viel Spaß das wird nen mittel grosses projekt. Kannst die gesamte seiten erstmal durchsuchen inkl js verarbeiten lassen um zu schauen ob via js noch was geladen wird und musst Einbindung folgen womit man natürlich versuchen kann endlosschleifen zu erzeugen. Daran solltest du dann auch denken

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten