[PHP] CLIで利用する時にクエリ情報を便利に取得する方法

fractal-1121017_1280
LINEで送る
Share on GREE
Share on LinkedIn

コマンドラインで事前に用意していたプログラムを実行する際や、サーバー運用などで便利ツールを作っておいた場合に
引数を渡して柔軟なツールにする必要がありますが、PHPであれば「argv」情報を取得して行う方法と「getopt」関数を使って受け渡しの値を取得する方法があります。

どの方法が最適化は状況に応じて使い分けるとして、2パターンのやり方をメモしておきます。

argv

PHPのCLIで受け取ることのできるARGV情報はコマンドライン情報の実行プログラムを含めた値全てをスペース区切りで配列で受け取る事ができます。

下記のように実行した場合、

$argvの配列で取得すればいいので、順番固定の仕様であれば簡単に使うことができる。

ただし、URLクエリのように、key=valueの連想配列で受け取りたい場合は、以下のようにすればいい。

実行結果

順位不同で実行できるので実用的です。
さらにCLI以外でも使えるように$_REQUESTに値を入れているので、ハイブリッドに使えます。

getopt

コマンドラインでよくある「-a」や「-v」などのような受け渡しでできるのがこの関数です。
詳しい使い方はPHP Manualを参照

設定は少し複雑な面もあり、
「-a」「-v」のようなshortオプションと
「–all」「–version」のようなlongオプションが存在する。
どちらを使ってもいいし、多くのコマンドでハイブリッドにしている事も考えると、コマンド設計が重要になると言える。

とりあえず、ここでは簡易な使い方のみサンプルで用意しました。

実行結果

オプション設定はshortもlongも”:(コロン)”をつけるのがポイントのようです。
この設定はあまり他ではないので、少し特殊ですね。
マニュアルページを見ると、もう少し細かな設定などが出来るようですが、今回はここまで。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*