2013-07-20 2 views
0

루프 내에서받는 정보가 들어있는 테이블의 행을 인쇄하려고합니다. 이것은 작동하지만 배열 I 루프에는 약 200 개의 항목이 있으며 모든 항목이 선택 될 때까지 중단됩니다. 각 반복마다 행을 인쇄 할 수있는 방법이 있습니까? 샘플 코드는 제가 사용 :foreach, for 또는 while 루프의 값 인쇄

 foreach ($array_check as $dns) { 
     if (checkdnsrr($dns. '.',"A")) { 
      $ret = "<tr> 
       <td><span class='badge badge-important'><i class='icon-remove icon-white'></i></span></td> 
       <td>$dns</td> 
       <td>-</td> 
       <td>-</td> 
       <td>-</td> 
       <td>option</td> 
       </tr><br/>"; 
      echo $ret; 
     } else { 
      $ret = "<tr> 
       <td><span class='badge badge-success'><i class='icon-ok icon-white'></i></span></td> 
       <td>$dns</td> 
       <td>-</td> 
       <td>-</td> 
       <td>-</td> 
       <td>option</td> 
       </tr><br/>"; 
      echo $ret; 
     } 
     flush(); 
     ob_flush(); 
     usleep(1000000); 
    } 

모든 제안은 감사합니다, 내가 인터넷 주위에이에 대한 많은 검색 한 대부분은 또한 오프 오프와 gzip 할 필요가있는 output_buffering을하는 지점을 찾을 수 있습니다.

둘 다 사용 중지되었지만 완료 될 때까지 중단 된 상태로 출력됩니다.

미리 감사드립니다.

답변

0

먼저 HTML을 약간 수정하면 <tr> 뒤에 <br>이 필요하지 않습니다. 실제로 잘못되었으므로 표 본문에 <tr>과 다른 내용을 넣으면 안됩니다.

질문에 대해서는 루프를 수행하는 동안 출력을 행 단위로 인쇄하고 싶습니다. 맞습니까? 간단하게 사용하여 PHP 스크립트에서, AJAX를 통해 데이터를 요청 :

$output = array(); 
foreach ($array_check as $dns) { 
    $output[] = checkdnsrr($dns. '.', "A"); 
} 
header('Content-type: application/json'); 
echo json_encode($output); 

그런 다음 원하는 타이밍을 추가하는 자바 스크립트를 사용하여 클라이언트 측에서 HTML을 구문 분석 당신이해야 할 노력은 무엇
는 따라 매우 브라우저, 더 나은 변경 방법입니다 또는 JQuery를 사용하고 멋진 애니메이션을 추가 할 수도 있습니다.

편집 : 나는 checkdnsrr을 잊어 버렸습니다.

+0

사실, 이것은 내가 지금 일하고 있어요 무엇을, 할 수없는 문제처럼 보인다 PHP에서 정상적으로 고쳐야한다. – user816624

0

usleep (1000000)을 사용하기 때문에 표시하는 데 시간이 걸립니다. 1 초 기다린다.

대신 다른 경우에 당신은 간단하게 할 수있는이있는 행 또는 클래스를 표시하기 위해 사용하는 그리고 :

foreach ($array_check as $dns) { 
     echo "<tr> 
      <td><span class='badge badge-".((checkdnsrr($dns. '.',"A"))?'important':success)."'><i class='icon-remove icon-white'></i></span></td> 
      <td>$dns</td> 
      <td>-</td> 
      <td>-</td> 
      <td>-</td> 
      <td>option</td> 
      </tr><br/>"; 
    flush(); 
    ob_flush(); 
    usleep(1000000); 
} 
+0

미안하지만, 내 포인트를 얻지 못했고, 각 반복에서 정확히 출력되는지 테스트하기 위해 usleep을 사용하고 있습니다 ... – user816624