Linux上でPHPコマンドを実行する際、他のコマンドと同様に引数を付けることが可能です。
プログラミング初心者からエキスパートまで、Linux上のPHPコマンドを使用している方は多くいますが、実行時の引数やパラメータの扱い方法について知識不足があります。
この記事では、Linux上で引数などのパラメータ付きのPHPコマンドを実行する方法について説明したいと思います。
目次
PHPコマンドを実行
コマンドでPHPのスクリプトファイルを実行するには、php
コマンドの後ろに半角スペースで実行するファイルパスを指定します。
引数を指定して実行するには、さらにその後ろに半角スペース区切りでパラメータを追加します。
1 |
# php <実行するファイル> <引数1> <引数2> <引数3>... |
仮に、script.php
というファイルを作成し、これに3つの引数を付けてコマンドで実行すると、以下のようにな書き方になります。
1 |
# php script.php arg1 arg2 arg3 |
コマンドの引数(パラメータ)を取得
LinuxのPHPコマンドで実行された引数を取得するには、実行されたスクリプトファイル内で定義済みの変数を使用します。
定義済みの変数を使った取得方法は2つあります。
引数を取得する定義済みの変数
- $argv・・・スクリプトに渡された引数の配列
- $_SERVER・・・サーバー情報および実行時の環境情報
PHP: 定義済みの変数 – Manual
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
$argvで取得する
上記の例で作成したscript.php
ファイルのスクリプトを以下のように記述します。
1 2 3 |
<?php var_dump($argv); ?> |
すると、このように出力されます。
1 2 3 4 5 6 7 8 9 10 |
array(4) { [0]=> string(10) "script.php" [1]=> string(4) "arg1" [2]=> string(4) "arg2" [3]=> string(4) "arg3" } |
つまり、定義済みの変数に配列で格納されており、配列の最初(0番目)は実行したファイル名。
そして、その後(1番目)からが引数になりますので、このように1つずつ取得することもできます。
1 2 3 4 |
<?php $str = $argv[1] . $argv[2] . $argv[3]; echo $str; ?> |
実行結果はこのようになります。
1 |
arg1arg2arg3 |
PHP: $argv – Manual
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
$_SERVERで取得する
変数名は違えど、中身は同じです。
1 2 3 |
<?php var_dump($_SERVER['argv']); ?> |
PHP: $_SERVER – Manual
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
【おまけ】cronで実行する場合は注意!
以前の記事でもご紹介しましたが、パスが通ってないコマンドをcronで実行する場合は、絶対パスで指定しなければなりません。
1 |
/usr/bin/php /path/to/script.php arg1 arg2 arg3 |
詳しくはこちらをご参照ください。
cronの正しい書き方(文法)と設定項目について理解する | minory
Linuxの経験も長くなり、今まで何となくcronを使っていましたが、最近になってcronの書き方(文法)について理解せずに使っていたことに気付きました。特にタブや半角スペ…
ポチップ
コメント