ob_get_clean()
文字列を返します。書き込みバイト数を取得するには
$sebesseg = ob_get_clean();
$numberOfBytes = strlen($sebesseg);
最後のコメントを読んだ後、簡単なダウンロード速度測定スクリプトを PHP で実行する方法の短い例を用意しました。次のコードは、あなたが望むことをするはずです:
<?php
// get the start time as UNIX timestamp (in millis, as float)
$tstart = microtime(TRUE);
// start outout buffering
ob_start();
// display your page
include 'some-page.php';
// get the number of bytes in buffer
$bytesWritten = ob_get_length();
// flush the buffer
ob_end_flush();
// how long did the output take?
$time = microtime(TRUE) - $tstart;
// convert to bytes per second
$bytesPerSecond = $bytesWritten / $time;
// print the download speed
printf('<br/>You\'ve downloaded %s in %s seconds',
humanReadable($bytesWritten), $time);
printf('<br/>Your download speed was: %s/s',
humanReadable($bytesPerSecond));
/**
* This function is from stackoverflow. I just changed the name
*
* http://stackoverflow.com/questions/2510434/php-format-bytes-to-kilobytes-megabytes-gigabytes
*/
function humanReadable($bytes, $precision = 2) {
$units = array('B', 'KB', 'MB', 'GB', 'TB');
$bytes = max($bytes, 0);
$pow = floor(($bytes ? log($bytes) : 0) / log(1024));
$pow = min($pow, count($units) - 1);
// Uncomment one of the following alternatives
//$bytes /= pow(1024, $pow);
$bytes /= (1 << (10 * $pow));
return round($bytes, $precision) . ' ' . $units[$pow];
}
実際のダウンロード速度は、クライアントでのみ測定できることに注意してください。しかし、上記のコードの結果はほぼ問題ないはずです。
また、HTML ページ自体のダウンロード サイズを測定するだけです。画像。スタイルと JavaScript は、ページ読み込みの実際のダウンロード サイズを拡張します。ただし、ほとんどの場合、速度は HTML ドキュメントと同じになります。