2012-05-22 2 views
1

각 정수 사이에 10 초 간격으로 1부터 10까지의 값을 인쇄하고 싶습니다.PHP의 Timed 루프

예 :

$i=10; //Time delay  
for($j=1;$j<11;$j++) 
{ 
    echo $j; 
    //do something to delay the execution by $i seconds 
} 

내가 다 including flush(), ob_flush(), ob_implicit_flush() 시도했지만 모든 시간을 실행 전까지 내가 얻을 모두 고정 된 화면입니다.

+1

왜 그냥하지 그 자바 스크립트/jQuery로? –

+0

당신은 php에서 동일한 통합을위한 javascript를 제공 할 수 있습니까 ?? – mastero

답변

4

원하는 것은 PHP보다 훨씬 자바 스크립트 관련입니다. PHP는 서버 측이기 때문에 이러한 종류의 작업을 수행하도록 설계되지 않았습니다. 당신은 그것을 작동시킬 수는 있지만 아주 예쁘지는 않을 것입니다.

내 논리에서; 1에서 10까지 계산하면 서버가 전혀 포함되지 않아야합니다. 브라우저에서 직접이 작업을 수행 할 수 있으므로 javascript를 사용하십시오.

8

http://php.net/manual/en/function.sleep.php

슬립 기능은 스크립트의 실행을 중단합니다.

하지만 Javascript를 이런 식으로 사용해 보셨습니까? 스크립트가 최대 실행 시간에 도달 할 수 있으며 서버에서 리소스를 소모합니다. 대신에 클라이언트의 리소스를 사용하십시오!

+0

답변 주셔서 감사합니다,하지만 당신은 PHP 에서이 기능에 대한 자바 스크립트의 예를 들어 줄 수 있습니까 ??? – mastero

+0

'setTimeout()'은 당신이보고 싶은 것뿐만 아니라 DOM을 업데이트하는 몇 가지 방법입니다. 'getElementById ('myid'). innerHTML ('foo')' – Tim

0

출력 버퍼링으로 인해 HTTP를 사용하여 PHP로이 작업을 수행 할 수 없으므로 Javascript를 사용하십시오.

0

PHP 스크립트가 실행되는 동안 카운트 다운을 인쇄 하시겠습니까? 당신이 볼

ob_start(); 
for($i=0;$i<10;$i++) { 
    echo str_repeat(" ",10000); 
    echo 'printing...<br />'; 
    ob_flush(); 
    flush(); 
    sleep(1); 
} 

, 이상한 행 : 예, 그 권장되지 않는 조각을 시도하는 경우 는

echo str_repeat(" ",10000); 

는 그 브라우저가 실제로 데이터를 플러시 결정하기 전에 몇 가지 "데이터"를 필요로 보인다. 실시간 카운터에 javascript를 사용하십시오.

+0

도움이되지 않았다 .... 당신은 "some"데이터를 지정할 수 있습니까 ?? – mastero

+0

내게는 수수께끼이지만 일부 브라우저에서는 특정 양의 데이터 (알 수 없음)를 작성하여 프론트 버퍼 (그냥 농담)를 에뮬레이션 할 수 있어야합니다. 또한 [여기] (http://stackoverflow.com/questions/3445222/php-output-with-sleep)를 확인하십시오. –