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