私はコマンドラインからPHPスクリプトを実行したいが、そのスクリプトの変数も設定したい。変数でコマンドラインからphpスクリプトを実行する
ブラウザのバージョン:script.php?var=3
コマンドライン:php -f script.php
(しかし、私はそれを3を含む変数を与える方法は?)
私はコマンドラインからPHPスクリプトを実行したいが、そのスクリプトの変数も設定したい。変数でコマンドラインからphpスクリプトを実行する
ブラウザのバージョン:script.php?var=3
コマンドライン:php -f script.php
(しかし、私はそれを3を含む変数を与える方法は?)
スクリプト:
<?php
// number of arguments passed to the script
var_dump($argc);
// the arguments as an array. first argument is always the script name
var_dump($argv);
コマンド:
$ php -f test.php foo bar baz
int(4)
array(4) {
[0]=>
string(8) "test.php"
[1]=>
string(3) "foo"
[2]=>
string(3) "bar"
[3]=>
string(3) "baz"
}
また、using PHP from the command lineをご覧ください。
だけでなくIonut G. Stanによって示されるようにargcとargvを使用して、あなたはまた、UNIXスタイルのコマンドラインオプションを解析することができPEARモジュールConsole_Getoptを使用することができます。詳細については、this articleを参照してください。
また、Zend_Console_GetoptクラスのZend Frameworkにも同様の機能があります。 argvのほかに
(はIonutが述べたように)、あなたは環境変数を使用することができます:あなたが名前付きパラメータを維持したい場合は
$var = getenv("var");
解決策の多くは、引数をその順序に従って変数に入れます。たとえば、
myfile.php 5 7
は、5を最初の変数に、7を次の変数に入れます。
私は、引数の名前たかった:
myfile.php a=1 x=8
私はPHPコードで変数名としてそれらを使用できるように。
はIonut G.スタンは http://www.php.net/manual/en/features.commandline.php
で与えたリンクは、私に答えを与えました。 PSUドットEDUで
sep16:
あなたは簡単にparse_str()関数を使用しての$ _GET変数にコマンドライン引数を解析することができます。
<?php
parse_str(implode('&', array_slice($argv, 1)), $_GET);
?>
これは、cgi-phpとまったく同じように動作します。
$ php -f somefile.php a=1 b[]=2 b[]=3
このアレイに '1' と$ _GET [ 'B']を$ _GET [ 'A']を設定します( '2'、 '3')。
もうまくいきます...他の回答もうまくいくはずですが、これが最初であり、変数名とデータの長いリストを持つよりも見栄えがよくなります。 – Hintswen