2018.02.05PHPでローディングバー!CLIで重い処理をするときにリアルタイムで経過を把握する方法#Linux#PHP例えば、大量のデータをデータベースに移行したり、バッチスクリプトでPHPを動かすといったサーバーで重い処理をするとき、バックエンドでPHPを動かして時間のかかる処理をするときがあります。長時間待っていると、処理が進んでいるかわからなくなりますが、CLI(コマンドライン)で処理をリクエストしてから完了するまでの間、”20%...完了”といった具合に画面上で経過がわかると「処理が進んでいる」と把握することができます。このようなローディングバーを表示させるには自力でプログラムに仕掛けを作る必要があります。00:00:00#そこで今回は、CLIで重い処理をするときにリアルタイムで処理経過を表示する方法をご紹介します。今回のローディングバーの実装はPHPライブラリの「PHP-CLI-Progress-Bar」を使います。PHP5.3以上の環境で動かすことを想定しています。MS-DOSやUnix系あるいはGNU/Linuxシステムにおいて、主にサーバー用途で使用する場合などでは主流となる。基本的には文字のみのインターフェースで、コマンドを入れて操作する形式となる。5.3ライブラリPHP-CLI-Progress-Barhttps://github.com/guiguiboy/PHP-CLI-Progress-Bar設置方法とサンプルコードライブラリをサーバ―にアップロードし、PHPプログラムにインクルードします。以下は、ファイル構成です。コマンドラインでPHPを動かすbatch.phpに引数をつけて処理を実行します。#引数は$argvに格納されます。#引数は$argvに格納されます。"${MAXCOUNT}"exitシェルでreadList.txtの行数を抽出し、最大数を変数に格納します。その変数をshellBatch.phpの引数として処理をしています。~hogehoge100Sample-1、2の実行すると、ループ処理の経過をローディングバーで確認することが出来ます。