Kom ihåg mig?

Mäta trafik i PHP

Ämnesverktyg Visningsalternativ
Oläst 2009-08-05, 06:50 #1
BjörnJ BjörnJ är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2009
Inlägg: 971
BjörnJ BjörnJ är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2009
Inlägg: 971
Finns det något smidigt sätt att i slutet av ett PHP-skript kolla hur mycket data som skickades från skriptet (gärna inkl HTTP-headers)? D.v.s. mäta utgående trafik.

Jag tänker mig något i stil med memory_get_peak_usage(), men för trafik.

Gärna motsvarande för ingående trafik också (d.v.s. HTTP-requesten från klienten och eventuell externt inhämtad information).
BjörnJ är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-08-05, 10:52 #2
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Kika på output buffering.
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-08-05, 12:44 #3
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
Citat:
Originally posted by emilv@Aug 5 2009, 09:52
Kika på output buffering.
Kod:
// Starta buffer
ob_start();

/*
 * Din sida
 */

// Bufferns innehåll
$output = ob_get_contents();

// Stoppa buffer
ob_end_clean();

// Storlek i bytes
$size = strlen($output);

// Visa
echo $output;
Typ.

strlen() kontroller längden av en sträng, det motsvarar alltså antal bytes (oftast, kan dock bli lite fel ibland beroende på encoding).
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-08-05, 13:44 #4
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Du kan använda mb_strlen istället.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-08-05, 14:01 #5
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Ännu snyggare änr KarlRoos exempel är att göra en callbackfunktion och skicka med parametern chunk_size till ob_start(). På så sätt kan du minska minnesanvändningen och börja skicka data till webbläsaren fortare. Detta är extra relevant ifall du skickar stora filer genom PHP.

Citat:
Originally posted by tartareandesire@Aug 5 2009, 12:44
Du kan använda mb_strlen istället.
Nej, den räknar nämligen antalet tecken och inte antalet byte. Möjligen då om du anger att strängen är i ASCII-format, så att du helt säkert vet att 1 tecken == 1 byte.
emilv är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 19:37.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017