PHPで一括出力ではなく、ひとつずつ順次に出力する方法
PHPで重たい処理とかをしている際に、途中報告みたいな形で順次出力させる方法のメモ。
以下がソース。
<?php
function testA($x, $testArray){
for($i = 1; $i < 10000000; $i++){
}
ob_flush();
flush();
echo $x . "<br />"; //順次表示される
$testArray[$x] = rand(10000, 99999);
return $testArray;
}
$testArray = array();
for($x = 1; $x < 10; $x++){
$testArray = testA($x, $testArray);
}
var_dump($testArray); //これが表示されるのは一番最後
?>
本来出力用バッファにためるものを、ob_flashとflashで強制的に吐き出させるらしい。
負荷のかかる作業中、「これちゃんと動いてんの?」と不安になる時がある。そういった場合に「現在○○中です」とか出せると、利用者にとっては安心できると思われる。
関連記事
-
PHPでパスワード付きのZIP / PDFファイルを作成する方法
PHPでZIPファイル化する方法やPDFファイル出力する方法を過去に書いたが、何 ...
-
Laravelのディレクトリ構造・バージョン・DB接続情報確認
Laravelで作成されているシステムに携わることがあった。しかしながら当方La ...
-
PHPとStripeで定額課金(サブスクリプション)実装する方法
PHPとStripeで1ヶ月ごとに500円でサイト内のサービスを使い放題、といっ ...
-
PHPの文字化け対策
PHPファイルもDBも全部UTF-8で出来たらいいけど、 そうもいかない場合が多 ...
-
PHPのカレンダー関数
カレンダー関数で使えるかもしれないものをメモ。 ■cal_days_in_mon ...