PHP實(shí)現(xiàn)的進(jìn)度條效果詳解

字號:


    本文實(shí)例講述了PHP實(shí)現(xiàn)的進(jìn)度條效果。分享給大家供大家參考,具體如下:
    在做采集的時(shí)候,想通過php來實(shí)現(xiàn)一個(gè)進(jìn)度條功能,谷歌了一下,找了個(gè)合適的代碼。下面直接上代碼:
    名單
    <?php
    //防止執(zhí)行超時(shí)
    set_time_limit(0);
    //清空并關(guān)閉輸出緩存
    ob_end_clean();
    //需要循環(huán)的數(shù)據(jù)
    for($i = 0; $i < 188; $i++)
    {
      $users[] = 'Tom_' . $i;
    }
    //計(jì)算數(shù)據(jù)的長度
    $total = count($users);
    //顯示的進(jìn)度條長度,單位 px 
    $width = 500;
    //每條記錄的操作所占的進(jìn)度條單位長度
    $pix = $width / $total;
    //默認(rèn)開始的進(jìn)度條百分比
    $progress = 0;
    ?>
    <html>
    <head>
    <title>動態(tài)顯示服務(wù)器運(yùn)行程序的進(jìn)度條</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style>
    body,div input {
      font-family: Tahoma;
      font-size: 9pt
    }
    </style>
    <script language="JavaScript">
     <!-- 
     function updateProgress(sMsg, iWidth) 
     { 
      document.getElementById("status").innerHTML = sMsg; 
      document.getElementById("progress").style.width = iWidth + "px"; 
      document.getElementById("percent").innerHTML = parseInt(iWidth / <?php echo $width; ?> * 100) + "%"; 
      } 
     --> 
     </script>
    </head>
    <body>
      <div>
        <div>
          <div id="progress"
           ></div>
        </div>
        <div id="status"></div>
        <div id="percent"
         >0%</div>
      </div> 
    <?php
    flush(); //將輸出發(fā)送給客戶端瀏覽器 
    foreach($users as $user)
    {
      // 在此處使用空循環(huán)模擬較為耗時(shí)的操作,實(shí)際應(yīng)用中需將其替換; 
      // 如果你的操作不耗時(shí),我想你就沒必要使用這個(gè)腳本了 :) 
      for($i = 0; $i < 1000000; $i++)
      {
      }
      ?> 
    <script language="JavaScript"> 
     updateProgress("正在操作用戶 <?php echo $user; ?> ....", <?php echo min($width, intval($progress)); ?>);
    </script>
    <?php
      flush(); //將輸出發(fā)送給客戶端瀏覽器,使其可以立即執(zhí)行服務(wù)器端輸出的 JavaScript 程序。 
      $progress += $pix;
    } //end foreach 
    ?> 
    <script language="JavaScript"> 
      //最后將進(jìn)度條設(shè)置成最大值 $width,同時(shí)顯示操作完成 
     updateProgress("操作完成!", <?php echo $width; ?>); 
    </script>
    <?php
    flush();
    ?>
    </body>
    </html>
    希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。