Linuxで引数(パラメータ)付きのPHPコマンドを実行

Linux上でPHPコマンドを実行する際、他のコマンドと同様に引数を付けることが可能です。
プログラミング初心者からエキスパートまで、Linux上のPHPコマンドを使用している方は多くいますが、実行時の引数やパラメータの扱い方法について知識不足があります。
この記事では、Linux上で引数などのパラメータ付きのPHPコマンドを実行する方法について説明したいと思います。

PHPコマンドを実行

コマンドPHPのスクリプトファイルを実行するには、phpコマンドの後ろに半角スペースで実行するファイルパスを指定します。
引数を指定して実行するには、さらにその後ろに半角スペース区切りでパラメータを追加します。

# php <実行するファイル> <引数1> <引数2> <引数3>...

仮に、script.phpというファイルを作成し、これに3つの引数を付けてコマンドで実行すると、以下のようにな書き方になります。

# php script.php arg1 arg2 arg3

コマンドの引数(パラメータ)を取得

LinuxPHPコマンドで実行された引数取得するには、実行されたスクリプトファイル内で定義済みの変数を使用します。
定義済みの変数を使った取得方法は2つあります。

引数を取得する定義済みの変数
  1. $argv・・・スクリプトに渡された引数の配列
  2. $_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

詳しくはこちらをご参照ください。

著:大重 美幸
¥3,344 (2023/02/07 13:43時点 | Amazon調べ)


Amazonベストセラー

返信を残す

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

CAPTCHA