2011-02-02 5 views
1

imagine로드 속도를 계산하려면 다음 계산 된 값을 반향 시키겠습니다. 그러나 ... 나는 HTML의 하단에 페이지의 끝에서하지 그 값을 에코하고자하지만, 어딘가에 HTML의 중간에 : 그러나변수가 비어 있고 계산 후 비어 있어야합니다. 이 작업을 올바르게 수행하는 방법은 무엇입니까?

$s = microtime(true); 

<html><head>...</head><body> 
    echo $laadtijd . " seconds"; //echo value, after calculation completed 
</body></html> 

    $e = microtime(true); 
    $laadtijd = round($e - $s, 3); //fill in the value 

, 현재 페이지는 빈 값을 보여줍니다 계산 된 동안 $ laadtijd에 대해! 어떻게 해결할 수 있을까요?

+2

'$ laadtijd'는'echo' 전에 계산됩니까? –

+0

은 에코 후에 계산됩니다. 그 후에 값을 보여줄 수 있도록 페이지 중간에 값을 주어야합니다. 그게 가능하니? – Sam

+0

예, 아래에서 내 대답을 읽어보십시오. –

답변

2

당신이 할 수있는 (내가 비록 확실하지 않다) 그 수행하여 :.

<?php 

    // Start time 
    $s = microtime(true); 

    // Holds the output buffer 
    ob_start(); 
    echo ' 
     <html> 
       <head>...</head> 
       <body>.... 
       TIME_CALCULATED seconds. 
       </body> 
     </html>'; // TIME_CALCULATED will be our flag 

    // Get the output 
    $output = ob_get_contents(); 
    ob_end_clean(); 

    // End time 
    $e = microtime(true); 
    $laadtijd = round($e - $s, 3); 

    // Echo the output 
    echo str_replace('TIME_CALCULATED', $laadtijd, $output); 

?> 

를이 단지와 출력 버퍼를 보유하고 모든 내용은 시간과 함께 버퍼에 우리의 깃발 TIME_CALCULATED을 바꿉니다.

자세한 내용은 PHP 설명서의 Output Control Functions을 참조하십시오.

0

로드가 완료되지 않은 한 전체 페이지의로드 속도를 계산할 수 있습니까? 당신은 $ laadtijd를 어딘가 끝까지 계산했다. 어떻게 중간에 그것을 반향시킬 수 있겠는가 ??? microtime를 사용하여 불가능 페이지를로드하는 데 걸리는 시간이 정확합니다

<?php 
$s = microtime(true); 
?> 
<html><head>...</head> 
<body> 
show you entire page 
<?php 
$e = microtime(true); 
$laadtijd = round($e - $s, 3);//calculate first then echo 
echo $laadtijd . " seconds"; 
?> 
</body></html> 
+0

나는 나의 질문을 더 잘 표현할 것이다. 비평 +1 주셔서 감사합니다. – Sam

관련 문제