yano3nora
7/1/2017 - 4:48 AM

[php: process of over execute time] Attention on old code. #php #js

[php: process of over execute time] Attention on old code. #php #js

<?php
  $step_max = 999;// 1回の処理回数
  // foreachなら (count($array)-1) を上に
  // ループ処理の外側は全部この中に...
?>
<html>
<head>
<script language="JavaScript"><!--
function PageJump(){
  if ('function' === typeof window.PageJump2){
    PageJump2();
  }
}

// --></script>
</head>
<body onLoad="PageJump();">
<?
  echo str_pad('',256);
  flush();

  $step = 0;
  while($step < $step_max){
          // $step が for で言うところの $i になる
          // メイン処理をかく、進捗を出力flush()しつつ、完了したら$is_endをtrueに

    if($is_end == true){// 長い繰り返し処理が終わったらループを中断します。
      break;
    }

//ときどきブラウザにパケットを送ったほうがタイムアウトは防げます。
    echo str_pad('',256);
    flush();
    $step++;
  }

  if($step >= $step_max){
?>
<p>処理が完了しました。</p>
</body>
</html>
<?php
    exit;
  }
?>
<script language="JavaScript"><!--
function PageJump2(){
// 処理が終わっていないときには再度、処理に戻ります。
// ブラウザのキャッシュを防ぐためにクエリをUNIXタイムでつけます。
  location.href = "<?php echo $_SERVER['PHP_SELF'];?>?<?php time();?>";
}
// --></script>
</body>
</html>