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で強制的に吐き出させるらしい。
負荷のかかる作業中、「これちゃんと動いてんの?」と不安になる時がある。そういった場合に「現在○○中です」とか出せると、利用者にとっては安心できると思われる。
関連記事
-
MySQLiで直近に挿入したオートインクリメントの値と次回挿入する値を取得する方法
phpとmysqliを使っている中で次回挿入するオートインクリメントの値と、前回 ...
-
ランダム表示のページング
MySQLからデータを持ってくる際に、 ランダムな表示を行ってほしいと言われた。 ...
-
フォームからCSVファイルをアップロードしてPHPの配列に格納する方法
formからcsvファイルをアップロードさせて、PHPで色々処理したかった。とり ...
-
体重管理をPHPで
体重とBMIを管理する画面をPHPで作ってみようと思った。 ソースは下記の通り。 ...
-
CodeIgniter4で祝日一覧APIにCURLでリクエストし結果をファイルキャッシュする方法
Codeigniter4.4.4で祝日一覧APIにCURLでリクエストしたい。尚 ...